Вывод массива 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 - Ошибка управляющего символа, возможно неверная кодировка
E-mail:
Telegram:
Оставить комментарий