JSON – это формат файла, который используется для хранения и обмена данными.
Данные хранятся в наборе пар ключ-значение.
Эти данные удобочитаемы для человека, что делает JSON идеальным для ручного редактирования.
Вот пример строки JSON:
{
"name": "Flavio",
"age": 35
}Из этого небольшого фрагмента вы можете видеть, что ключи заключены в двойные кавычки, двоеточие разделяет ключ и значение, и значение может быть разных типов.
Наборы значений ключей разделяются запятой.
Расстояние (пробелы, вкладки, новые строки) не имеет значения в файле JSON. Вышесказанное эквивалентно
{"name": "Flavio","age": 35}или
{"name":
"Flavio","age":
35}но, как всегда, хорошо отформатированные данные лучше понять.
JSON родился в 2002 году и стал чрезвычайно популярным благодаря своей простоте использования и гибкости, и хотя он родился в мире JavaScript, он быстро распространился на другие языки программирования.
Это определено в стандарте ECMA-404 .
Строки JSON обычно хранятся в файлах .json и передаются по сети с типом application/json MIME.
Типы данных
JSON поддерживает некоторые базовые типы данных:
Число: любое число, не заключенное в кавычкиСтрока: любой набор символов, заключенный в кавычкиЛогическое значение:истинаилиложныйМассив: список значений, заключенный в квадратные скобкиОбъект: набор пар ключ-значение, заключенный в фигурные скобкинулевой: словоnull, представляющее пустое значение
Любой другой тип данных должен быть сериализован в строку (а затем десериализован), чтобы быть сохраненным в JSON.
Кодирование и декодирование JSON в JavaScript
ECMAScript 5 в 2009 году представил объект JSON в стандарте JavaScript, который, помимо прочего, предлагает JSON.parse() и JSON.stringify() методы.
Прежде чем его можно будет использовать в программе JavaScript, JSON в строковом формате должен быть проанализирован и преобразован в данные, которые может использовать JavaScript.
JSON.parse() принимает строку JSON в качестве параметра и возвращает объект, содержащий проанализированный JSON:
JSON.stringify() принимает объект JavaScript в качестве своего параметра и возвращает строку, которая представляет его в JSON:
JSON.parse() может также принимать необязательный второй аргумент, называемый функцией reviver. Вы можете использовать это для подключения к синтаксическому анализу и выполнения любой пользовательской операции:
JSON.parse(string, (key, value) => {
if (key === 'name') {
return `Name: ${value}`
} else {
return value
}
})Вложенные объекты
Вы можете организовать данные в файле JSON с помощью вложенного объекта:
{
"name": {
"firstName": "Flavio",
"lastName": "Copes"
},
"age": 35,
"dogs": [
{ "name": "Roger" },
{ "name": "Syd" }
],
"country": {
"details": {
"name": "Italy"
}
}
}Онлайн-инструменты для работы с JSON
Есть много полезных инструментов, которые вы можете использовать.
Одним из них является JSONLint , средство проверки JSON. С его помощью вы можете проверить, является ли строка JSON допустимой.
JSON Formatter – это хороший инструмент для форматирования строки JSON, чтобы она была более читаемой в соответствии с вашими соглашениями.
Схема JSON
Хотя JSON очень гибкий с самого начала, бывают моменты, когда вам нужна немного более жесткая организация, чтобы все оставалось на месте.
Это когда Схема JSON вступает в игру. Это способ аннотирования и проверки документов JSON в соответствии с определенным форматом, который вы создаете.
Оригинал: “https://flaviocopes.com/json/”