如何获取嵌套在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)?

如何使用 c# 从 ajax 中的嵌套 JSON 对象中获取值

如何在 Laravel 中获取嵌套的键值

如何在 Laravel 中获取嵌套关系的实例?