如何使用PHP在已存在的JSON中添加嵌套元素

时间:2015-08-21 15:44:35

标签: php json

例如,如果我有一个像这样的简单JSON:

{
 "data": [
  "pets" : "none",
  "parents": {"mom":"Anna", "dad":"Bob"},
  "ancestors": { "children":[
   {
    "name": "Joe",
    "age" : "10"
   },
   {
    "name" : "Ron",
    "age" : "4"
   }
  ]}
 ]
}

让我们说我想用PHP添加一个年龄为“8”的孩子“Jessica” 我该怎么办? 到目前为止,我知道我需要使用json_decode来访问JSON,json_encode以保存其中的内容 但如果我需要添加一个$newchild = array("name" : "Jessica", "age" : "8");并添加它,它将如何在data->祖先 - >孩子中添加?

1 个答案:

答案 0 :(得分:2)

当您使用json_decode时,您正在将json字符串转换为php数组

因此,您可以像这样添加新元素:

$jsonstring = '...the string...';
$jsonarray = json_decode($jsonstring, true);
$jsonarray['data']['ancestors']['children'][] = array('name'=>'Jessica', 'age'=>8);

制作$jsonarray的print_r以查看其内容

然后你当然可以再次打印到json string

$jsonstring = json_encode($jsonarray);