json_decode PHP

Содержание
Введение
Простейший JSON
JSON с одним вложением
JSON с массивом
Реальный пример работы с API
Похожие статьи

Введение

Попробуем разобраться с обработкой JSON средствами PHP

Простейший JSON

Предположим, что у нас есть следующий JSON

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'

Cделаем json_decode() без дополнительных параметров

var_dump(json_decode($json));

object(stdClass)#4 (5) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }

В этом случае json_decode() возвращает object

Теперь выполним json_decode() с аргументом true

var_dump(json_decode($json, true));

array(5) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }

Теперь мы получили array

Зафиксируем, что в первом случае (без аргументов) var_dump возвращает объект а во втором (с аргументом true) массив

Подробнее о том как выводить содержимое массива читайте здесь

$json_decode = json_decode($json); $json_decode_true = json_decode($json,true); $arraydata = implode(',' , $json_decode_true); echo $arraydata;

1,2,3,4,5

Попробуем вытащить из массива отдельные элементы

echo $json_decode_true["a"]; echo'<br>; echo $json_decode_true["b"];

1
4

JSON с вложением

Усложним задачу. Пусть теперь JSON содержит вложения второго уровня.

$json2 = ' { "a": {"a_item_1": 11, "a_item_2": 12, "a_item_3": 13}, "b": 2, "c": 3, "d": {"d_item_1": 41, "d_item_2": 42, "d_item_3": 43}, "e": 5 }' ;

Попробуем достать один из вложенных элементов.

Обычные элементы (b, c, e) можно вывести на экран с помощью echo для элементом, которые сами также являются массивами (a, d) нужно использовать, например, implode(), подробности здесь

$json_decode_true2 = json_decode($json2, true); echo $json_decode_true2["c"]; echo'<br>; $d = $json_decode_true2["d"]; $dvalue = implode( , $d); echo $dvalue; echo'<br>; echo $json_decode_true2["d"]["d_item_2"];

3
41,42,43
42

Как Вы можете видеть, обычные элементы по-прежнему доступны. Новые элементы возвращают Array если обратиться к верхнему уровню, либо значение, если обратиться к элементу массива.

JSON с массивом

Массивы заключены в квадратные скобки. Предположим, что он довольно простой.

{ "a": [{ "a_item_1": 11, "a_item_2": 12, "a_item_3": 13 }, { "a_item_4": 14, "a_item_5": 15, "a_item_6": 16 } ], "b": 2, "c": 3, "d": { "d_item_1": 41, "d_item_2": 42, "d_item_3": 43 }, "e": 5 }

Чтобы обратиться к элементу массива нужно сперва указать его индекс в квадратных скобках.

Достанем элементы a_item_3 и a_item_6 , обратите внимание на то, что они находятся в разных частях вложенного массива a

Ожидаем получить 13 и 16

$json_decode_true3 = json_decode($json3, true); echo $json_decode_true3["a"][0]["a_item_3"]; echo <br>; echo $json_decode_true3["a"][1]["a_item_6"];

13
16

Реальный пример

Пример работы с реальным API вы можете изучить в статье «Обработка ответа реального запроса к API»

Похожие статьи
Программирование на PHP
Массивы в PHP
Циклы в PHP
Дата и время в PHP - основы
Как отобразить время различных часовых поясов PHP
Как вставить переменную в ссылку PHP
gettype(): определить тип переменной PHP
json_decode
Как получить ширину экрана с помощью PHP
Вызов функции из другого файла
Premature end of chunk coded message body: closing chunk expected
Сгенерировать неповторяющиеся случайные числа PHP
Узнать свой HTTP_USER_AGENT
Сравнить две даты
Классы в PHP 8
Комментарии в PHP
substr: обрезать строку
Запросы к REST API на PHP
$_SERVER['REQUEST_URI']: текущая url
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8
Тернарный оператор
try catch
PHP_errors.log Beget
Разбор ошибок

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: