- Операторы
- Управляющие инструкции
- JS Объекты
- Array
- Boolean
- Date
- Error
- Function
- Global
- JSON
- Math
- Number
- Object
- RegExp
- String
- Symbol
- Итераторы и генераторы
- Map и WeakMap
- Set и WeakSet
- Локализация
- браузер BOM
- HTML DOM
- События
- HTML Объекты
- Промисы, async/await
- Сетевые запросы
- Бинарные данные и файлы
- Разное
Объект JSON
JSON (JavaScript Object Notation) – это формат передачи данных.
Встроенный объект JSON, предоставляющий функции для преобразования значений JavaScript в формат JSON и обратно. Функция JSON.stringify сериализует значение JavaScript в текст JSON. Функция JSON.parse десериализует текст JSON для получения значения JavaScript.
Синтаксис
JSON.method
Параметры
- Method
- Обязательный. Имя одного из методов объекта JSON.
Комментарии
Невозможно создать объект JSON с помощью оператора new
. При попытке это сделать возникает ошибка. Тем не менее можно переопределить или изменить объект JSON.
Обработчик скриптов создает объект JSON при загрузке обработчика. Скрипту всегда доступны его методы.
stringify
Метод stringify() преобразует значение JavaScript в строку JSON.
Особенности преобразования:
- Значение
undefined
, функция или значение типаsymbol
, встреченные во время преобразования, будут либо опущены (если они найдены в объекте), либо превращены вnull
(если они найдены в массиве). - Члены прототипа и неперечислимые свойства игнорируются.
Синтаксис
JSON.stringify(value[, replacer[, space]])
Параметры
- value
Значение, которое будет преобразовано в строку JSON.- replacer
Необязательный. Значением параметра может быть функция, массив илиnull
.- Массив определяет набор свойств объекта, которые будут включены в JSON-строку. В качестве значений массива указываются строки, соответствующие именам свойств преобразуемого объекта.
- Функция позволяет заменить значения свойств объекта в JSON-строке. Функция должна содержать два параметра: имя свойства и значение свойства. Имя свойства является строкой. Функция должна возвращать новое значение свойства.
- Если значением параметра является
null
, то JSON-строка будет включать все свойства объекта.
- space
Необязательный. Делает JSON-строку более удобочитаемой, добавляя отступы для каждого уровня вложенности. Значением параметра может быть строка или число.- Число указывает количество пробелов, используемых в качестве отступа для каждого уровня вложенности. Каждый последующий уровень вложенности дополняется новыми отступами. Например, если в качестве значения параметра используется число 2, то на первом уровне вложенности отступ будет составлять два пробела, на последующем уровне вложенности отступ будет составлять 4 пробела и т. д. Максимальное количество пробелов, которое можно указать – 10. Если указать большее число, оно автоматически уменьшится до 10.
- Строка определяет символ, используемый в качестве отступа для каждого уровня вложенности. Длина строки ограничена 10 символами, если указать строку длиннее, она обрезается до 10 символов. Использование строки также позволяет использовать табуляцию ("\t") в качестве отступа. Каждый последующий уровень вложенности дополняется новыми символами отступа. Например, если в качестве значения параметра указан символ - (дефис), то на первом уровне вложенности в качестве отступа будет использоваться один дефис, на последующем уровне вложенности будет использоваться 2 дефиса и т. д.
Возвращаемое значение
JSON-строка.
Пример
var person = { name: "Гомэр", age: 40, work: { place: "Атомная станция", location: "Спрингфилд" } } alert ( "Пример с одним параметром:\n" + JSON.stringify(person) + // '{"name":"Гомэр","age":40,"work":{"place":"Атомная станция","location":"Спрингфилд"}}' "\n\nПример с двумя параметрами (массив):\n" + JSON.stringify(person, ["name", "age"]) + // '{"name":"Гомэр","age":40}' "\n\nПример с двумя параметрами (функция):\n" + JSON.stringify(person, function (key, value) { switch (key) { case "name": return "Барт"; case "age": return 10; case "work": return undefined; default: return value; } }) + // '{"name":"Барт","age":10}' "\n\nПример с тремя параметрами:\n" + JSON.stringify(person, null, 2)); /* { * "name": "Гомэр", * "age": 40, * "work": { * "place": "Атомная станция", * "location": "Спрингфилд" * } * } */
parse
Метод parse() преобразует строку JSON в соответствующее значение JavaScript.
Особенности преобразования:
- Если во время преобразования в строке JSON встретиться значение
undefined
, то оно будет опущено (не будет включено в результат).
Синтаксис
JSON.parse(text[, reviver])
Параметры
- text
JSON-строка, которая будет преобразована в соответствующее значение JavaScript.- reviver
Необязательный. Значением параметра должна быть функция. Функция позволяет заменить значение свойства JSON-строки перед его возвратом. Функция должна содержать два параметра: имя свойства и значение свойства. Имя свойства является строкой. Функция должна возвращать новое значение свойства.
Возвращаемое значение
Соответствующее значение JavaScript (примитивное значение, объект или массив).
Пример
alert ( JSON.parse('{}') + '\n' + // {} JSON.parse('true') + '\n' + // true JSON.parse('[1, 5, "false"]')+'\n'+ // [1, 5, "false"] JSON.parse('null') ); // null