向JSON添加新的键/值对


Adding new key/value pair to 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。

运行您的代码表明您的代码确实有效。输出变为:

{"employees":[{"firstName":"John","lastName":"Doe"},{"firstName":"Anna","lastName":"Smith"},{"firstName":"Peter","lastName":"Jones"}],"0":{"newKey":"newValue"}}

(注意行的末尾)

但是,我认为您没有将新的键/值推送到正确的位置。

如果您想进入员工阵列,请执行以下操作:

array_push ( $obj['employees'], $arr );

如果你只想添加到最高级,只需执行:

$obj['newKey'] = 'newValue';
$json = json_encode ( $obj );