将新的关联元素添加到JSON对象

时间:2016-02-05 16:26:41

标签: javascript php arrays json

我有问题要将元素添加到json数组。

我想要的结构是:

[{"method":"edit","type":"1", "template":"3", "meta":{"title":"Tools", "descirption":"Tools"}}]

问题是我动态添加所有这些参数。

所以,让我说我有一个开始:

[{"method":"edit","type":"1", "template":"3"}]

如何添加整个“元”数组,请不要使用push(),因为我打印时会有另一种结构。

当我使用

$json = json_decode($json, true);

我希望:

array(
    method' => edit,
    'type' => 1,
    'template' => 3,
    'meta' => array('title' => '')
);

感谢您的建议!

2 个答案:

答案 0 :(得分:0)

所以我假设你开始使用JSON。所以让我们解码到PHP(正如你所说的那样)

$json = json_decode($json, true);

现在我们应该$json['method']等等。现在让我们定义$meta

$meta = array('title' => '');

并将其添加到$json

$json['meta'] = $meta;
echo json_encode($json);

答案 1 :(得分:0)

当您使用json_decode在PHP中解码当前的JSON时,它将解码为包含一个元素或array[0]的数组。因此,为了访问或任何对象,您需要首先指向0索引。这样做:

$json = '[{"method":"edit","type":"1", "template":"3"}]';

$arr = json_decode($json);
$arr[0]->meta = array('title' => '');
$json = json_encode($arr);

var_dump($json);
//Result:
// string '[{"method":"edit","type":"1","template":"3","meta":{"title":""}}]' (length=65)