向JSON添加新的键/值对

时间:2015-12-25 23:26:30

标签: php json

我有以下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。

1 个答案:

答案 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 );