- JSON
JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми. В JSON используются их следующие формы:
· Объект — это неупорядоченное множество пар имя/значение, заключённое в фигурные скобки { }. Между именем и значением стоит символ ": ", а пары имя/значение разделяются запятыми.
· Массив (одномерный) — это множество значений, имеющих порядковые номера (индексы). Массив заключается в квадратные скобки [ ]. Значения отделяются запятыми.
· Значение может быть строкой в двойных кавычках, числом, значением true или false, объектом, массивом, или значением null. Эти структуры могут быть вложены друг в друга.
· Строка — это упорядоченное множество из нуля или более символов юникода, заключенное в двойные кавычки, с использованием escape-последовательностей начинающихся собратной косой черты (backslash). Символы представляются простой строкой.
· Имя — это строка.
Правила создания объектной модельи как и описание масива ничем не отличается от правил в js
Библиотека jQuery имеет несколько методов, например, getJSON() и parseJSON(), которые упрощают получение данных с помощью JSON через запросы AJAX.
Метод $.getJSON() открывает простой путь к получению данных в формате JSON с сервера. Он эквивалентен вызову метода $.get() с параметром формата данных "json". Синтаксис его вызова идентичен синтаксису метода $.get() за исключением того, что вам не нужно указывать формат данных.
Следующий пример показывает JSON-представление объекта, описывающего человека. В объекте есть строковые поля имени и фамилии, объект, описывающий адрес, и массив, содержащий список телефонов.
1. {
2. "firstName": "Иван",
3. "lastName": "Иванов",
4. "address": {
5. "streetAddress": "Московское ш., 101, кв.101",
6. "city": "Ленинград",
7. "postalCode": 101101
8. },
9. "phoneNumbers": [
10. "812 123-1234",
11. "916 123-4567"
12. ]
13. }
Теперь давайте рассмотрим использование json при работе с ajax.
Пример работы с AJAX. Получение данных в JSON.
Вариант 1.
1. jQuery(document).ready(function() {
2. $.ajax({
3. url:"time.php",
4. type:"POST",
5. dataType: 'text',
6. success: function (result) {
7. alert (result); // {"name":"Goper"}
8. // данные в строке, сама строка – json –строка, ее нужно распарсить
9. var event = JSON.parse (result);
10. alert (event.name); // Goper
11. }
12. });
13. });
14.
Вариант2.
1. jQuery(document).ready(function() {
2. $.ajax({
3. url:"time.php",
4. type:"POST",
5. dataType: 'json',
6. //данные уже в json
7. success:function(result){
8. alert (result); // [object Object]
9. alert (result.name); // Goper
10. alert (result.tel); // 2934851,2917081 array
11. alert (result.tel[0]); // 2934851
12. }
13. });
14. });