Перейти к основному содержимому

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

  1. Описание формата данных в API-контрактах, которое читается машиной и понятно человеку.
  2. Валидация данных в JSON-документах. Здесь имеется в виду не просто проверка на корректность формата, а проверка специфических требований и ограничений.
  3. Автоматическая генерация примеров запросов и ответов API: JSON Schema позволяет генерировать динамические данные, соответствующие схеме. Эти примеры ответов можно использовать для создания заглушек.
  4. Создание автоматической документации к API.
  5. Автоматическая генерация кода. На основе схемы можно создавать SDK для API на любой платформе.

Спецификации

  1. RFC 8259 — про JSON
  2. ISO 8601 — про формат дат
  3. JSON Schema
  4. JSON5

Подборка материалов по JSON

  1. Пример JSON
  2. Что такое JSON и как с ним работать
  3. Хорошо написанная статья в англоязычной Википедии
  4. Типичные ошибки в JSON
  5. JSON онлайн редактор
  6. JSON конвертер в YAML
  7. XML конвертер в JSON
  8. YAML конвертер в JSON, XML, CSV

Подборка материалов по JSON Schema

  1. Объяснение JSON-схемы с примерами от ВК
  2. JSON Schema. Быть или не быть?
  3. Понимание JSON схемы
  4. Пример JSON-схемы
  5. Пример онлайн-валидатора JSON-схемы
  6. Конвертер JSON-схемы на разные языки

Видео

  1. JSON за 5 минут
  2. Формат JSON. От основ к практике
  3. Полный курс по JSON для начинающих
  4. Валидация JSON в Postman