ГРУППА КУРСА
|
Формат JSONИногда бывает нужно передать данные из одного языка в другой. AJAX - пример такой ситуации. Программа на JavaScript отправляет данные на сервер, где их принимает скрипт, написанный на PHP. Затем он отправляет ответ, который снова принимает программа на JavaScript. Когда данных много или они должны иметь определённую структуру, то можно передать объект. Для этого используется формат JSON. Объект в формате JSON - это обычная строка и её лекго отправить от клиента на сервер и наоборот. Когда нужно передать объект, его переводят в JSON и отправляют, а программа, принимающая данные, переводит полученную строку обратно в объект. Массивы также преобразуются в формат JSON. Удобство этого формата состоит в том, что с ним работают многие языки. Не обязательно писать код для перевода объекта. Для этого есть специальные функции. Преобразуемый объект может содержать вложенные объекты, а они могут иметь свои вложенные объекты. Такой сложный объект корректно переводится в JSON. Сущесвует возможность ограничить уровень вложенности. В JavaScript для перевода объекта в сторку используется метод JSON.stringify. А для перевода строки в объект метод JSON.parse. Пример: JavaScript: +
Выведите переменную str на экран и посмотрите, как выглядит строка JSON. В PHP для преобразования в JSON используется функция json_encode(). Данные должны быть в кодировке UTF-8. json_encode (объект, настройки, вложенность) Параметры: объект - объект, который переводится в строку настройки - настройки, определяющие преобразование некоторых символов. Указываются с помощью большого количества констант. Их можно найти в справочниках. вложенность - максимальный уровень вложенности. Обязателен только первый параметр. Функция json_decode() переводит строку в объект. Строка должна быть в кодировке UTF-8. json_decode (строка, массив, вложенность, настройки) Параметры: строка - строка, которая переводится в объект массив - если указать true, то строка переводится в ассоциативный массив вложенность - максимальный уровень вложенности настроки - настройки, влияющие на работу функции. Параметр добавлен в версии PHP 5.4. Обязателен только первый параметр. Пример: PHP код:
В случае ошибки функция json_encode() возвращвет false, а json_decode() возвращает NULL. Можно использовать функцию json_last_error(), которая возвращает код, соответствующий определённой ошибке. Не обязательно использовать специальные функции для получения строки. Её можно создать самостоятельно. Только она должна соответствовать формату JSON. Имена свойств должны быть в кавычках. Допускаются только двойные кавычки. Свойства разделяются запятыми. |