Формат JSON

  • ppt
  • 11.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 114. Формат JSON.ppt

Формат JSON

JavaScript Object Notation
Представление объектов JavaScript

Формат 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)

Методы JSON.stringify() и JSON.parse()


str = '{"title":"Конференция",
"date":"2014-07-15T12:00:00.000Z"}';
event = JSON.parse(str,
function(key, value) {
if (key == 'date') return new Date(value)
return value
}
)
alert(event.date.getDate())