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)#3 (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»

Article author: Andrei Olegovich

Похожие статьи
Development with PHP
Arrays in PHP
Date and Time in PHP - basics
How to display time of multiple timezones in PHP
How to add variable to url in PHP
json_decode
How to get screen size with PHP
Call function from another file
Premature end of chunk coded message body: closing chunk expected
Generate unique random numbers with PHP
Check your HTTP_USER_AGENT
Compare two dates
OOP
Namespaces in PHP
Comments in PHP
Cookies
PHP sessions
Authentication and Authorization in PHP 8
PHP linters we use
PHP errors: case studies
card_from_db(): banner card from a DB row
PHP versions: history in brief
Creating rules in .htaccess
require, require_once, include, include_once
Deduplication in PHP

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

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

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

@aofeed

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

@aofeedchat

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