JSON

Третья основная технология, помимо XMLHttpRequest и XML, часто используемая в Ajax-приложениях, – это JavaScript Object Notation (JSON – представление объектов JavaScript, http://www.json.org/). Использование формата JSON позволяет хранить (сериализовать, или переводить в последовательную форму) объекты JavaScript или данные в компактном и понятном виде, при этом не требуя большого объема программного кода JavaScript для чтения и записи данных (выполняется и для XML). Формат JSON основан на использовании часто упускавшейся из виду особенности JavaScript, или, если быть более точным, спецификации языка ECMAScript, известной также как ECMA-262.

Формат JSON используется внутренними механизмами текущей версии ASP.NET AJAX и в общем случае может использоваться для обмена с сервером данными, имеющими сложную структуру. Он является «родным» для JavaScript и позволяет избежать порой достаточно громоздкого процесса разбора формата XML. Следующий фрагмент определяет объект book в формате JSON:

{"book": {
"title": "Programming ASP.NET AJAX",
"author": "Christian Wenz",
"chapters": {
"chapter": [
{"number": "1", "title": "Introduction"},
{"number": "2", "title": "JavaScript"},
{"number": "3", "title": "Ajax"}
]
}
}}

Это те же данные, которые вы видели ранее в этой главе в формате XML.


Объект book обладает свойствами title, author и chapters. Свойство chapters содержит ряд вложенных элементов chapter, каждый из которых, в свою очередь, обладает свойствами number и title. Чтобы было более понятно, ниже приводятся те же данные в формате XML.








Пример 3.3 демонстрирует, как выполняется разбор данных в формате JSON.
Пример 3.3. Формат JSON упрощает создание объектов json.html

"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
JSON

(body)

(/body)


Фигурные скобки, которые можно видеть в примере 3.3, используются для определения свойств объектов, а квадратные скобки – для определения массивов.

Кроме того, вы должны обратить внимание на фрагмент, который с точки зрения безопасности выглядит весьма сомнительно.


Следующая строка производит интерпретацию кода JSON во время исполнения: eval("var obj = " + json + ";");

В этой строке используется встроенная функция JavaScript – eval(), которая производит интерпретацию программного кода во время исполнения. Некоторые программисты считают использование этой функции дурным тоном, но здесь кроется еще большая опасность, которая заключается в том, что функция eval() слепо доверяет программному коду, который она интерпретирует. В примере выше данные в формате JSON являются составной частью сценария, поэтому им можно доверять.

В Ajax?приложениях данные обычно поступают с того же сервера, откуда была получена сама страница. Безоговорочное доверие к данным, которое проявляет функция eval(), может оказаться опасным, особенно если страница, откуда поступают объекты JSON, неподконтрольна вам или имеет место злонамеренный сбой настроек компьютера, на котором выполняется сценарий (то есть действует шпионская программа, которая перенаправляет запросы с одного сервера на другой). Поэтому будьте осторожны в обращении с функцией eval() и используйте ее для интерпретации только тех данных, которым вы полностью доверяете..



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Объект XMLDocument
Объект XMLHttpRequest
Программирование объекта XMLHttpRequest

Вернуться в раздел: ASP.NET AJAX / Ajax