Массив в JSON (PHP)

Начиная с версии 5.2.0 в PHP появились отличные функции json_encode() и json_decode(). Первая для кодирования массива в JSON-строку, вторая соответственно для раскодирования.

json_encode()

Например нужно массив конвертировать в JSON-строку.

<?php $array = array( 1 => 'Номер один', 'two' => 2, 'three' => 'Это номер три', 4 => 4 ); $json = json_encode($array); echo $json; ?>

В результате на экране вы увидите:

{"1":"\u041d\u043e\u043c\u0435\u0440 \u043e\u0434\u0438\u043d","two":2,"three":"\u042d\u0442\u043e \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438","4":4}

Не удивляйтесь записям типа ("1":"\u041d\u043e\u043c\u0435\u0440), текст написанный в юникоде тоже кодируется.

json_decode()

Соответственно может понадобиться раскодировать JSON-строку.

<?php // В этом случае json_decode вернет строку в виде объекта stdClass $object = json_decode($json); echo '<pre>'.print_r($object, true).'</pre>'; // Мы же знаем что строка была массивом // Поэтому в качестве второго параметра передаем значение true // И нам возвращается массив $array = json_decode($json, true); echo '<pre>'.print_r($array, true).'</pre>'; ?>

На экране мы увидим следующее:

stdClass Object ( [1] => Номер один [two] => 2 [three] => Это номер три [4] => 4 ) Array ( [1] => Номер один [two] => 2 [three] => Это номер три [4] => 4 )

Категории

ПрограммированиеPHPФайлы в PHP

Комментарии