我有以下JSON结构:
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
现在我想在最后添加一些新的键/值对:
addData ( $json );
function addData($json) {
$obj = json_decode ( $json, true );
$arr = array (
"newKey" => "newValue"
);
array_push ( $obj, $arr );
$json = json_encode ( $obj );
echo $json;
}
不幸的是,我不行。在此函数结束时输出$json
时,它只返回旧的json。
答案 0 :(得分:1)
运行代码表明您的代码确实有效。输出变为:
{"employees":[{"firstName":"John","lastName":"Doe"},{"firstName":"Anna","lastName":"Smith"},{"firstName":"Peter","lastName":"Jones"}],"0":{"newKey":"newValue"}}
(注意行尾)
但是,我认为您不会将新密钥/值推送到正确的位置。
如果要推入employees数组,请执行以下操作:
array_push ( $obj['employees'], $arr );
如果您只想添加到最高级别,请执行以下操作:
$obj['newKey'] = 'newValue';
$json = json_encode ( $obj );