JSON и JSON Schema
JSON (JavaScript Object Notation) — это структурированный текстовый формат обмена данными. Легко читается людьми. Имеет открытый стандарт.
Где используется JSON
JSON независим от языков программирования и используется повсеместно, например:
- При обмене данными через API. Например, мы можем как один из вариантов передавать body HTTP-запроса в формате JSON (но не обязательно только JSON!).
- При создании параметров конфигурации для систем и сервисов.
- В NoSQL базах данных, например, в MongoDB.
Синтаксис
JSON-объект — это неупорядоченное множество пар вида {"ключ": "значение"}
- Ключ – это название параметра, пишется в двойных кавычках.
- Значение для ключа указывается после двоеточия.
- Между парами ключ-значение ставится запятая. После последней пары запятая не ставится.
- Писать ключи можно в любом порядке.
Типы данных
- Строка:
"name": "Вася" - Число – целое или с запятой:
"years": 24 - Boolean – true или false:
"resident": true - Null – пустое значение:
"children": null - Массив:
"experience": ["Повар", 2, "Аналитик", 1] - Объект:
"experience": { "Повар": 2, "Аналитик": 1 }
Классический JSON (по стандарту RFC 8259) не поддерживает комментарии. Однако существует расширение стандартного JSON — JSON5, в котором можно вставлять комментарии.
А где же тип “дата”?
JSON не даёт строгих указаний, в каком формате передавать дату и время. Можно использовать unix-time или передавать дату в строке по ISO 8601, например, "2012-04-21T18:25:43-05:00".
JSON Schema
JSON Schema – это способ описания структуры и ограниче ний JSON-документов. Схема создана для описания JSON-данных, но и сама она при этом является JSON-объектом. С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей. В отличие от XML-схемы, которая имеет стандарт и строго диктует определение документа в рамках XML, JSON-схема более гибкая и простая.
Применение JSON Schema
- Описание формата данных в API-контрактах, которое читается машиной и понятно человеку.
- Валидация данных в JSON-документах. Здесь имеется в виду не просто проверка на корректность формата, а проверка специфических требований и ограничений.
- Автоматическая генерация примеров запросов и ответов API: JSON Schema позволяет генерировать динамические данные, соответствующие схеме. Эти примеры ответов можно использовать для создания заглушек.
- Создание автоматической документации к API.
- Автоматическая генерация кода. На основе схемы можно создавать SDK для API на любой платформе.
Спецификации
- RFC 8259 — про JSON
- ISO 8601 — про формат дат
- JSON Schema
- JSON5
Подборка материалов по JSON
- Пример JSON
- Что такое JSON и как с ним работать
- Хорошо написанная статья в англоязычной Википедии
- Типичные ошибки в JSON
- JSON онлайн редактор
- JSON конвертер в YAML
- XML конвертер в JSON
- YAML конвертер в JSON, XML, CSV
Подборка материалов по JSON Schema
- Объяснение JSON-схемы с примерами от ВК
- JSON Schema. Быть или не быть?
- Понимание JSON схемы
- Пример JSON-схемы
- Пример онлайн-валидатора JSON-схемы
- Конвертер JSON-схемы на разные языки