JSON простой и универсальный формат передачи данных.
ТвитнутьJSON расшифровывается JavaScript Object Notation.
Формат JSON может использоваться с AJAX вместо XML. Поддержка формата JSON встроена в JavaScript.
Многие сервисы предоставляют свои услуги через JSON интерфейс, к примеру Flickr.com предоставляет API, с помощью которого Вы сможете отображать на Вашем сайте картинки имеющиеся у них.
Каждый формат имеет свои недостатки и преимущества:
Преимущества JSON:
Преимущества XML:
JSON включает в себя следующие структуры:
Массив - это список упорядоченных значений. Массив в JSON обозначается квадратными скобками [].
Синтаксис:
[значение1, значение2, значениеN]
Массив в JSON может содержать неограниченное количество значений.
Синтаксис:
{имя1:значение1, имя2:значение2, имяN:значениеN}
Объект может содержать неограниченное количество пар имя/значения. Каждое из значений само может являться объектом или массивом. Такие объекты или массивы называются вложенными.
{имя1:значение1, имя2: {имя2_1:значение2_1,имя2_2:значение2_2} }
Объекты и массивы в JSON являются конструкциями, а литералы непосредственно данными, которые группируются этими конструкциями.
Литералы JSON:
Синтаксис:
{имя1:"строка", имя2:13, имя3:true, имя4:false, имя5:null}
Файл JSON должен иметь расширение .json.
Ниже приведем сравнение файлов XML и JSON bookbase.json и bookbase.xml содержащих описание книг в книжном магазине.
{ bookbase:[ { title:"Гарри Поттер и философский камень", author:"Джоан Ролинг", cost:500, quantity:15 }, { title:"Дракула", author:"Брэм Стокер", cost:430, quantity:5 }, { title:"Преступление и наказание", author:"Федор Достоевский", cost:400, quantity:10 }, ........ ] }
Аналогичный XML файл:
<?xml version="1.0" encoding="UTF-8" ?> <bookstore> <book id='1'> <title>Гарри Поттер и философский камень </title> <author>Джоан Ролинг</author> <cost>500</cost> <quantity>15</quantity> </book> <book id='2'> <title>Дракула</title> <author>Брэм Стокер</author> <cost>430</cost> <quantity>5</quantity> </book> <book id='3'> <title>Преступление и наказание</title> <author>Федор Достоевский</author> <cost>400</cost> <quantity>10 </quantity> </book> ........ </bookstore>
Обратите внимание: длинна файла bookbase.json 1457, а файла bookbase.xml 2137 символов.
Запросим содержимое нескольких тэгов файла bookbase.json из JavaScript.
Пример
xhttp=new XMLHttpRequest(); xhttp.open('GET','bookbase.json',true); xhttp.send(); xhttp.onreadystatechange=function() { if (xhttp.readyState==4) { //Принятое содержимое json файла должно быть вначале обработано функцией eval var json=eval( '('+xhttp.responseText+')' ); //Далее мы можем спокойно использовать данные document.getElementById('wrap').style.dislay='block'; document.getElementById('res1').innerHTML=json.bookbase[1].title; document.getElementById('res2').innerHTML=json.bookbase[1].author; document.getElementById('res3').innerHTML=json.bookbase[1].cost; document.getElementById('res4').innerHTML=json.bookbase[1].quantity; } }
Задание 1 обратитесь с помощью AJAX к файлу bookbase.json, считайте его содержимое и:
Пример
<html> <head> <script type='text/javascript'> /* Пишите код здесь */ </script> </head> <body> <!-- Пишите код здесь --> </body> </html>