JSON является частью стандарта ECMAScript начиная с 1999 года, когда ECMA определила функцию eval() воспринимающую формат. Он стал набирать популярность вместе с нарастающим успехом Ajax. Слово JSON часто появляется когда кто-нибудь заводит речь об Ajax. Известно, что JSON является другим форматом данных, что он замещает XML, и что многие программисты активно поддерживают его. Но что такое в действительности JSON и в чем его преимущества?
Почему JSON?
Преимущество JSON заключается в том, что он распознается в JavaScript. Нет необходимости разбирать документ, как это происходит с XML, для передачи данных через интернет.
JSON и XML
Преимущества JSON:
Простой для чтения и понимания.
Простой для использования.
Преимущества XML:
Имеет возможности расширения
И XML и JSON имеют возможность интегрировать большой объем данных в бинарной форме.
Синтаксис JSON
Компоненты JSON:
Объекты: содержат объекты или атрибуты.
Скалярные переменные: число, строка, логическая переменная.
Массив.
Литеральные значения: null, true, false, "строка символов", и числовые значения.
Объект
Содержит элемент или список элементов, где каждый элемент описывается следующим образом:
"имя" : "значение"
Синтаксис объекта:
{ элемент, элемент, .... }
Массив
Набор значений, разделенных запятой.
[ значение, значение, ....]
Значение
Значение может быть: объектом, массивом, литеральным значением (строка, число, true, false, null).
Для создания JSON файла больше ничего не нужно!
Пример JSON файла
Простой пример структура меню. В данном объекте содержатся атрибуты и массив, который включает другие объекты строки меню.
{
"menu": "Файл",
"commands": [
{
"title": "Новый",
"action":"CreateDoc"
},
{
"title": "Открыть",
"action": "OpenDoc"
},
{
"title": "Закрыть",
"action": "CloseDoc"
}
]
}
Эквивалент на XML:
<?xml version="1.0" ?>
<root>
<menu>Файл</menu>
<commands>
<item>
<title>Новый</value>
<action>CreateDoc</action>
</item>
<item>
<title>Открыть</value>
<action>OpenDoc</action>
</item>
<item>
<title>Закрыть</value>
<action>CloseDoc</action>
</item>
</commands>
</root>
Как использовать формат
Файл JSON позволяет загружать данные с сервера или на сервер. Например, сохранение содержимого формы, которая была только что заполнена пользователем. Процесс включает три фазы: обработку браузером, обработку сервером, и обмен данными между ними.
Клиентская часть (браузер)
Данная часть выполняется достаточно просто, так как JSON является частью определения JavaScript. Содержимое файла или определяющих данных назначается переменным и они становятся объектами программы.
Серверная часть
Файл JSON используется различными программными языками, включая PHP и Java , благодаря наличию парсеров, которые позволяют получать содержимое и даже конвертировать его в классы и атрибуты языка. На сайте
JSON можно найти парсеры для многих языков программирования.
Обмен данными
Загрузка файла может быть выполнена в JavaScript несколькими способами:
непосредственное включение файла в HTML страницу как внешний JavaScript файл .js.
загрузка с помощью команды JavaScript.
с использованием
XMLHttpRequest.
Файл JSON обрабатывается функцией JavaScript eval(). Отправка файла на сервер может быть выполнена с помощью XMLHttpRequest. Файл отправляется как текстовый и обрабатывается парсером языка программирования, который используется на сервере.
Пример
Код XMLHttpRequest:
var req = new XMLHttpRequest();
req.open("GET", "file.json", true);
req.onreadystatechange = myCode; // обработчик
req.send(null);
Обработчик JavaScript:
function myCode()
{
if (req.readyState == 4)
{
var doc = eval('(' + req.responseText + ')');
}
}
Использование данных:
var menuName = document.getElementById('jsmenu'); // ищем поле
menuName.value = doc.menu.value; // назначаем значение полю
Как получать данные:
doc.commands[0].title // читаем значение поля "title" в массиве
doc.commands[0].action // читаем значение поля "action" в массиве