Вывод массива json в php: функции encode и decode
Json создали для JavaScript (его полное название - JavaScript Object Notation), и представляет он собой формат обмена данными.
Json нашел свое применение в различных языках программирования — например, в php, где он выглядит следующим образом:
["1":"yellow";"2":"green";"3":"grey"]
Из примера видно, что пробелы отсустствуют, а имя и значение заключены в двойные кавычки. Если длина позволит, то строку можно применить для передачи данных в методе GET.
При этом передаваемый массив может иметь многоуровневую структуру. В php имеется набор функций json, предназначенный для создания и декодирования таких строк и работающий исключительно с UTF-8.
Json_encode в php
Данная функция преобразовывает объект, массив или переменную в формат json. В следующем примере в этот формат будет преобразован массив.<?php $msv = array('x1' => 10, 'x2' => 20, 'x3' => 30); $jmsv = json_encode($msv); //Содержимое $jmsv после выполнения этого куска кода: //{"x1":10,"x2":20,"x3":30} ?> ?>
Json_decode в php
Эта функция расшифровывает полученную строку, и в зависимости от того, какой параметр был выбран, мы получаем объект или массив. У функции есть два параметра — обязательный (строка, подлежащая расшифровке) и необязательный (если его указать, то выйдет массив, нет — объект). Рассмотрим следующий пример.<?php $jmsv = '{"x1":10,"x2":20,"x3":30}'; $outcls=json_decode($jmsv); $outmsv=json_decode($jmsv, true); //В результате получаем класс $outcls и массив $outmsv. ?>Получение данных из класса:
<?php echo $outcls->{'x1'}; ?>Получение данных из массива:
<?php echo $outmsv['x1']; ?>
Json_last_error в php
У этой функции параметры отсутствуют. Она возвращает значение, служащее для выделения причины появления ошибок.
- JSON_ERROR_NONE - Ошибок нет
- JSON_ERROR_SYNTAX - Синтаксическая ошибка
- JSON_ERROR_UTF8 - Некорректные символы UTF-8, возможно неверная кодировка
- JSON_ERROR_DEPTH - Достигнута максимальная глубина стека
- JSON_ERROR_STATE_MISMATCH - Неверный или не корректный JSON
- JSON_ERROR_CTRL_CHAR - Ошибка управляющего символа, возможно неверная кодировка
Оставить комментарий