Генератор JSON Schema (Draft 2020-12)

Создайте JSON Schema (draft 2020-12) по образцу JSON: типы, обязательные ключи, допускающие null объединения, элементы массивов и форматы строк вроде email и date-time. Бесплатно.

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Похожие Инструменты

Просмотреть Все

Что такое Генератор JSON Schema?

Выводит JSON Schema по примеру документа. Генератор описывает тип каждого свойства, объединяет элементы массива в одну схему items, перечисляет обязательные ключи, помечает значения с null объединениями типов и умеет распознавать распространённые форматы строк.

Как пользоваться Генератор JSON Schema

  1. Вставьте JSON в поле Входные данные JSON либо воспользуйтесь Загрузить пример или Открыть файл.
  2. При желании задайте Заголовок схемы.
  3. Переключайте Отмечать ключи как обязательные, Определять форматы строк и Запретить дополнительные свойства.
  4. Результат JSON Schema обновляется по мере ввода; используйте Копировать или Скачать.

Пример

Ввод
{"id":1,"email":"a@b.co"}
Вывод
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "id",
    "email"
  ]
}

Когда использовать Генератор JSON Schema

Используйте как отправную точку для контрактов API, проверки конфигураций или генерации форм. Схема, выведенная по одному образцу, не лучше самого образца: прежде чем проверять ею реальные данные, добавьте вручную ограничения вроде minimum, enum или pattern.

Как работает Генератор JSON Schema

Образец обходится рекурсивно, и каждая позиция собирает встреченные типы JSON (integer, number, string, boolean, object, array, null). Целые числа вперемешку с дробными становятся number; несколько типов превращаются в массив type, например ["object", "null"]. Для массивов объектов свойство обязательно, только если оно есть у каждого объекта. Определение формата проверяет строки по шаблонам для date-time, date, time, email, uuid, uri и ipv4 и добавляет format, только когда подходят все значения. В результате объявляется $schema: https://json-schema.org/draft/2020-12/schema.

Распространенные Случаи Использования

  • Быстрый старт схемы для тела запроса API
  • Проверка файлов конфигурации с помощью ajv или проверки в CI
  • Документирование структуры полезной нагрузки вебхука
  • Генерация форм по схеме в инструментах, принимающих JSON Schema

Часто Задаваемые Вопросы

Какой черновик стандарта генерируется?

Draft 2020-12, объявленный ключевым словом $schema. Используемые ключевые слова (type, properties, required, items, format, additionalProperties) допустимы и в draft-07.

Как определяются необязательные свойства?

Только по массивам объектов: если ключа нет у части элементов, он не попадает в required. Для одного объекта при включённой опции обязательны все ключи.

Проверяется ли формат принудительно?

В JSON Schema format по умолчанию — аннотация; валидаторам вроде ajv нужно включить проверку форматов (ajv-formats).

Что сделать дальше

Проверка по JSON-схеме
Проверьте данные JSON по JSON-схеме (draft 2020-12, 2019-09 или 07) через Ajv с проверкой форматов. Для каждой ошибки указан путь. Работает в браузере.
Форматирование JSON
Форматируйте JSON с отступом в 2 или 4 пробела либо табуляцией, сортируйте ключи и узнавайте точную строку и столбец ошибки. Работает в браузере.
Генератор QR-кодов
Бесплатный генератор QR-кодов для ссылок, текста, Wi-Fi, визиток, почты, SMS и телефонов. Коррекция ошибок, размер и цвета; скачивание в PNG или SVG.
Генератор JWT
Создавайте подписанные токены JSON Web Token с алгоритмами HS, RS, PS, ES или EdDSA. Правьте полезную нагрузку, задавайте exp и iat, создавайте ключи и секреты в браузере.
Генератор CSS box-shadow
Создавайте CSS box-shadow визуально: несколько слоёв, смещение, размытие, растяжение, inset и прозрачность RGBA. Живой предпросмотр и готовый код.
Генератор CSS-градиентов
Создавайте линейные, радиальные и конические CSS-градиенты с точками цвета, углами, повторением и интерполяцией OKLCH. Предпросмотр и готовый код.

Другие категории