Все для создания и продвижения сайтов

Верстка, программирование, SEO

Вывод массива 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 - Ошибка управляющего символа, возможно неверная кодировка
Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.