В наши дни формат JSON стал фактически стандартом в области передачи данных по сети. Рассмотрим работу с ним в PHP.
В качестве примера используем следующую JSON строку:
1 |
$json_string = '{"id":1, "name":"Иванов Иван Иванович", "children":["Иванов Василий Иванович", "Иванов Пётр Иванович", "Иванова Анна Ивановна"]}'; |
Для того чтобы данную JSON строку можно было использовать в приложении, воспользуемся стандартной функцией json_decode, которая возвратит нам исходные данные в виде PHP объекта.
1 |
$result=json_decode($json_string); |
В том, что это объект легко убедиться, если вывести полученный результат при помощи var_dump.
1 |
echo' |
1 2 3 |
'; var_dump($result); echo ' |
1 |
'; |
Таким образом мы можем работать с преобразованными данными как с обычным PHP объектом.
1 2 3 |
echo "<br>".$result->name.""; // Свойство children является массивом. echo "<br>".$result->children[0].""; |
Преобразование PHP объекта в JSON производится аналогичным образом, только вместо функции json_decode используется функция json_encode.
1 |
$back_to_json = json_encode($result); |
В результате мы получим исходную JSON строку.
Обратите внимание, что если в исходном PHP объекте имеются строковые свойства, то при наличии в их значениях не латинских символов, функция json_encode закодирует их соответствующим образом.
То, есть тот же «Иванов Иван Иванович» после преобразования в JSON будет выглядеть так: \u0418\u0432\u0430\u043d\u043e\u0432 \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447.
В этом нет ничего страшного. При обратном преобразовании функцией json_decode мы получим исходное значение.
Добавить комментарий