Формат JSON
Формат JSON – текстовый формат представления данных, основанный на подмножестве синтаксиса JavaScript, а именно на литералах массивов и объектов (массивов и объектов в литеральной нотации)
Плюсы формата JSON
Так как формат основан на синтаксисе JavaScript, определения JSON могут быть включены в состав сценариев на языке JavaScript и не требуют дополнительного синтаксического анализа (в отличие от языка разметки XML)
Массивы как литералы
Пример массива-нелитерала (созданного с помощью конструктора)arr = new Array ('AJAX', 'XML', 'JSON')
Пример массива-литералаlit_arr = ["строка", 1, true, null]
Массив, описываемый как литерал, определяется с помощью квадратных скобок, внутри которых находится список значений элементов массива, разделенных запятыми (строки в кавычках, числа, логические величины или значение null)
В сценариях JavaScript допустимы оба способа определения массива, но при работе с форматом JSON можно использовать только массивы, определенные как литералы
Объекты как литералы
Пример объекта-нелитерала (созданного с помощью конструктора) ball = new Object()ball.shape = "шар"ball.colour = "красный"ball.diam = 30
Пример объекта-литералаlit_ball = {"shape" : "шар", "colour" : "красный", "diam" : 30}
Объект, описываемый как литерал, определяется с помощью фигурных скобок, внутри которых находится произвольное количество пар имя:значение, разделенных запятыми (строки в кавычках, числа, логические величины или значение null)
В сценариях JavaScript допустимы оба способа определения массива, но при работе с форматом JSON можно использовать только объекты, определенные как литералы
Смешанные литералы
Описания массивов и объектов в записи литералов можно смешивать
Массив объектовcars = [{"model" : "Suzuki", "power" ; 100},{"model" : "Toyota", "power" ; 90},{"model" : "Honda", "power" ; 150}]
Объект массивовinfo_cars = {"availmodels" : ["Suzuki", "Toyota", "Honda"],"availpowers" : [100, 90, 150]}
Синтаксис JSON
Синтаксис JSON – смесь объектов и массивов в литеральном представлении, предназначенных для хранения данных
Ограничения JSON
не может быть переменных, так как формат служит исключительно для представления данных
{"availmodels" : ["Suzuki", "Toyota", "Honda"],"availpowers" : [100, 90, 150]}
Преобразования значений JavaScript в/из формата JSON
Встроенный объект JSON, предоставляющий методы конвертации объектов JScript в/из формата JSON
Поддерживается во всех браузерах, включая IE8+, для более старых браузеров рекомендуется библиотека json.js, добавляющая аналогичную функциональность
Методы объекта
stringify(value, replacer, space)преобразует («сериализует») значение в JSON-строку
value – объект JavaScript для преобразования
replacer – массив свойств, подлежих сериализации
space – число, уровни вложенности в JSON-строке оформляются указанным количеством пробелов, строка – вставляется эта строка
parse(str, reviver)читает JavaScript-значение из строки
str – JSON-строка
reviver – параметр, который является функцией function (key, value), принимающей по очереди все создаваемые пары ключ-значение, которая может возвратить преобразованное значение value, либо undefined, если его нужно игнорировать
Методы JSON.stringify() и JSON.parse()
event = {
title: "Конференция",
date: "Сегодня"
}
str = JSON.stringify(event)
alert(str)
event2 = JSON.parse(str)
alert(event2)
Методы JSON.stringify() и JSON.parse()
arr = new Array ('AJAX', 'XML', 'JSON')
str = JSON.stringify(arr)
alert(str)
event2 = JSON.parse(str)
alert(event2)
Методы JSON.stringify() и JSON.parse()
user = { name: "Василий", age: 25, roles: {isAdmin: false, isEditor: true}}
str = JSON.stringify(user, "", 4)
alert(str)
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.