如何获取嵌套在laravel中的json
Posted
技术标签:
【中文标题】如何获取嵌套在laravel中的json【英文标题】:Hos to get a json nested in laravel 【发布时间】:2021-06-21 10:44:08 【问题描述】:我正在使用 laravel 7
我想要这样的 json:
"declaracion":
"situacionPatrimonial":
"datosGenerales":
"nombre": "Pedro",
"primerApellido": "Perez",
"segundoApellido": "García",
"curp": "BADD110313HCMLNS09",
这个分支工作正常,我生成它没问题:
"datosGenerales":
"nombre": "Pedro",
"primerApellido": "Perez",
"segundoApellido": "García",
"curp": "BADD110313HCMLNS09",
我的代码是这样的
$records = [];
foreach ($declaraciones as $declaracion)
$record = [];
$record['datosGenerales']=$declaracion->datosGeneralesApi($id,$declaracion->servidor_publico);
$records[] = $record;
return $records;
datosGeneralesApi 这是一个特性
但我不知道如何在上面添加嵌套分支
"declaracion":
"situacionPatrimonial":
请问有什么想法吗?提前致谢
【问题讨论】:
【参考方案1】:我建议使用Eloquent API Resources。您可以轻松地将不同的资源相互嵌套,并以您想要的任何方式构建它们。
【讨论】:
【参考方案2】:我可能不太明白你的问题,但我希望能帮到你
$records = [];
foreach ($declaraciones as $declaracion)
// Here we create the nested items:
$record = [
"declaracion" => [
"situacionPatrimonial" => []
]
];
// Now access it
$record["declaracion"]["situacionPatrimonial"]['datosGenerales'] = $declaracion->datosGeneralesApi($id,$declaracion->servidor_publico);
$records[] = $record;
return $records;
您也可以考虑通过其他几种方式来执行此操作,而无需使用密钥进行访问:
$record = [
"declaracion" => [
"situacionPatrimonial" => $declaracion->datosGeneralesApi($id,$declaracion->servidor_publico);
]
];
$records[] = $record;
或者以更结构化的方式创建它:
// Create the last element:
$situacionPatrimonial = $declaracion->datosGeneralesApi($id,$declaracion->servidor_publico);
// Wrap that in the next element:
$declaration = ["situacionPatrimonial" => $situacionPatrimonial];
// Now create your record, with the wrapped element:
$record = ["declaracion" => $declaration];
$records[] = $record;
我希望这能解释你对嵌套的不理解,即使它不能直接回答你的问题。
【讨论】:
这正是我需要的 Djave,非常感谢以上是关于如何获取嵌套在laravel中的json的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Snowflake 中的嵌套 JSON 中获取值(基于相同 JSON 中存在的值)
如何使用 JSON 对象中的 POST 方法在 Laravel 中获取数据?
如何使用 AWS 胶水获取存储在 s3 中的模式或已处理的嵌套 json 文件压缩(gzip)?