update func
This commit is contained in:
62
docs/javascript/03-data-types/11-json.md
Normal file
62
docs/javascript/03-data-types/11-json.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
sidebar_position: 11
|
||||
---
|
||||
|
||||
# Формат JSON
|
||||
|
||||
- JSON – это формат данных, который имеет собственный независимый стандарт и библиотеки для большинства языков программирования.
|
||||
- JSON поддерживает простые объекты, массивы, строки, числа, логические значения и null.
|
||||
- JavaScript предоставляет методы JSON.stringify для сериализации в JSON и JSON.parse для чтения из JSON.
|
||||
- Оба метода поддерживают функции преобразования для интеллектуального чтения/записи.
|
||||
- Если объект имеет метод toJSON, то он вызывается через JSON.stringify.
|
||||
|
||||
JavaScript предоставляет методы:
|
||||
|
||||
- JSON.stringify для преобразования объектов в JSON.
|
||||
- JSON.parse для преобразования JSON обратно в объект.
|
||||
|
||||
JSON поддерживает следующие типы данных:
|
||||
|
||||
- Объекты \{ ... }
|
||||
- Массивы [ ... ]
|
||||
- Примитивы:
|
||||
- строки,
|
||||
- числа,
|
||||
- логические значения true/false,
|
||||
- null.
|
||||
|
||||
## JSON.stringify
|
||||
JSON.stringify пропускает некоторые специфические свойства объектов JavaScript
|
||||
- Свойства-функции (методы).
|
||||
- Символьные ключи и значения.
|
||||
- Свойства, содержащие undefined.
|
||||
|
||||
💥 ***Важное ограничение: не должно быть циклических ссылок.***
|
||||
|
||||
## Исключаем и преобразуем: replacer
|
||||
- **value** Значение для кодирования.
|
||||
- **replacer** Массив свойств для кодирования или функция соответствия function(key, value).
|
||||
- **space** Дополнительное пространство (отступы), используемое для форматирования.
|
||||
|
||||
В большинстве случаев JSON.stringify используется только с первым аргументом. Но если нам нужно настроить процесс замены, например, отфильтровать циклические ссылки, то можно использовать второй аргумент JSON.stringify.
|
||||
|
||||
```js
|
||||
let json = JSON.stringify(value[, replacer, space])
|
||||
```
|
||||
|
||||
## Форматирование: space
|
||||
Третий аргумент в JSON.stringify(value, replacer, space) – это количество пробелов, используемых для удобного форматирования.
|
||||
|
||||
## Пользовательский «toJSON»
|
||||
Как и toString для преобразования строк, объект может предоставлять метод toJSON для преобразования в JSON. JSON.stringify автоматически вызывает его, если он есть.
|
||||
|
||||
## JSON.parse
|
||||
Чтобы декодировать JSON-строку, нам нужен другой метод с именем JSON.parse.
|
||||
```js
|
||||
let value = JSON.parse(str[, reviver]);
|
||||
```
|
||||
- **str** JSON для преобразования в объект.
|
||||
- **reviver** Необязательная функция, которая будет вызываться для каждой пары (ключ, значение) и может преобразовывать значение.
|
||||
|
||||
Кроме того, JSON не поддерживает комментарии.
|
||||
|
||||
Reference in New Issue
Block a user