如何更新JSON文件中的特定JSON对象数组?

时间:2020-04-09 03:06:29

标签: php json file

我在JSON文件abc_def_ghi中存在一个JSON对象数组../hello/xyz.json。 json文件中的内容为:

{
    "abc_def_ghi": ["nada", "no", "yes", "nada", "nada", "no"],
    "world_status": null
}

下面是我如何在变量中加载json:

if (file_exists('../hello/xyz.json')) {
    $data = json_decode(file_get_contents('../hello/xyz.json'));
}

我下面有一个代码,该代码在JSON对象数组中添加默认值(在特定条件下)。现在,我需要用此新内容覆盖我的JSON文件。

if ((date('j')==29)) {
    $data->abc_def_ghi = array_fill(0, count($data->abc_def_ghi) , nada);  // Line A
    file_put_contents('../hello/xyz.json', $data);
}

问题陈述:

我尝试了上面的代码,但是不知何故它不会覆盖我的文件,但是删除了文件的所有内容。

添加默认值后,我的JSON在文件中应如下所示:

{
    "abc_def_ghi": ["nada", "nada", "nada", "nada", "nada", "nada"],
    "world_status": null
}

1 个答案:

答案 0 :(得分:1)

您需要先json_encode写入数据:

file_put_contents('../hello/xyz.json', json_encode($data));