Как обновить указанный c JSON массив объектов внутри JSON файла? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть 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'));
}

У меня есть код ниже, который добавляет значение по умолчанию (при заданных условиях c) в массиве объектов 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 голосов
/ 09 апреля 2020

Вам необходимо json_encode данные, прежде чем писать:

file_put_contents('../hello/xyz.json', json_encode($data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...