У меня есть рабочий php-код, который помещает новое содержимое в файл JSON в качестве новых объектов:
// Decode the JSON file's string into a PHP array.
$jsonObjs = json_decode(file_get_contents($className.'.json'), true);
// Push array
array_push($jsonObjs, $objects);
// Encode the array back into a JSON string and save it.
$jsonData = json_encode($jsonObjs);
// Put the updated $jsonData array into the JSON file
file_put_contents($className.'.json', $jsonData);
// echo JSON data
echo $jsonData;
/*test */
echo '<br><hr><br>';
$updatedJsonArr = json_decode(file_get_contents($className.'.json'), true);
$difference = array_diff_assoc($updatedJsonArr, $objects);
print_r('DIFF: ' .json_encode($difference). '<hr>');
foreach($difference as $obj) {
foreach($obj as $key => $value){
echo 'key: '.$key. ' -> value: '.$value.'<hr>';
}
}
/*test */
Переменная $objects
представляет собой строку Json с ключами и значениями.
Итак, теперь я запускаю 2 разные строки URL в своем браузере, например:
http://example.com/create.php?&className=Users&string=ciccio%20ipsum%20dolor%20sit,%20quntum%20est%20lorem%20ipsec&number=123&boolean=true&myArray%5B%5D=item1&myArray%5B%5D=item2&myArray%5B%5D=item3&myArray%5B%5D=last&pointer%5Btype%5D=__pointer&pointer%5BobjID%5D=a1B2c3D&pointer%5BclassName%5D=Users
http://example.com/create.php?username=johndoe&className=Users&string=ciccio%20ipsum%20dolor%20sit,%20quntum%20est%20lorem%20ipsec&number=123&boolean=true&myArray%5B%5D=item1&myArray%5B%5D=item2&myArray%5B%5D=item3&myArray%5B%5D=last&pointer%5Btype%5D=__pointer&pointer%5BobjID%5D=a1B2c3D&pointer%5BclassName%5D=Users
Итак, во второй строке URL я только что добавил username=johndoe
.Я получаю правильные эхо-сигналы, которые показывают 1-й объект JSON и 2-й с дополнительным ”username:”johndoe”
.
Что мне нужно сделать, это сравнить $jsonData
с $difference
массивом и добавить username
введите мой первый JSON-объект, затем put_contents()
снова в мой JSON-файл.Я установил foreach для получения ключей и значений моего $difference
массива, но я не знаю, как сделать то, что упомянуто выше, для динамического обновления моего JSON-файла.
Мне нужно проверить, если другойобъекты моего JSON-файла содержат новый ключ (в данном случае это имя пользователя, но оно может меняться, и мне нужно динамически получать ключи в коде), и добавить такой KEY в те объекты, у которых нет этого KEY.