Хотите использовать JSON, но не знаете с чего начать?

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" в массиве
Добавлено: 21 Августа 2013 01:35:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...