Как сделать сайт → Уроки PHP → PHP и JSON, функции json_decode и json_encode
JSON и PHP
Впервые я узнал о формате json, когда стал работать с API вконтакте. Это оказался формат обмена данными, который изначально был создан для языка JavaScript. По этому и расшифровка у этого формата следующая: JavaScript Object Notation. Тем не менее, нашлось применение этому формату во многих языках программирования, в том числе и в php.Строка json выглядит примерно так:
["1":"yellow";"2":"green";"3":"grey"]Как вы видите, имя и значение находятся в двойных кавычках, нет никаких пробелов. Эту строку можно будет использовать для передачи данных в методе GET, если позволит длина строки.
Структура передаваемого массива может быть многоуровневой. Что бы создавать подобные строки и декодировать их, в php есть специальный набор функций json.
Запомните, эти функции работает только с UTF-8.
Функция json_encode в php
Функция json_encode способна преобразовать в формат json переменную, массив или объект.<?php $msv = array('x1' => 10, 'x2' => 20, 'x3' => 30); $jmsv= json_encode($msv); //Содержимое $jmsv после выполнения этого куска кода: //{"x1":10,"x2":20,"x3":30} ?>В данном примере массив был преобразован в строку json.
Функция json_decode в php
Функция json_decode служит для расшифровки полученной строки. В результате работы функции мы можем получить массив или объект, в зависимости от выбранного параметра. Функция имеет несколько параметров. Первый является обязательным - это и есть строка, которую мы должны расшифровать. Второй параметр можно не указывать, тогда получим объект, а если указать - получим массив. На примере разберетесь.<?php $jmsv = '{"x1":10,"x2":20,"x3":30}'; $outcls=json_decode($json); $outmsv=json_decode($json, 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 Ошибка управляющего символа, возможно неверная кодировка
Скачайте бесплатно 10 видеоуроков PHP + MySQL одним архивом
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
Код кнопки: |
Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.
|