Генератор JSON Schema (Draft 2020-12)
Создайте JSON Schema (draft 2020-12) по образцу JSON: типы, обязательные ключи, допускающие null объединения, элементы массивов и форматы строк вроде email и date-time. Бесплатно.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Похожие Инструменты
Просмотреть ВсеЧто такое Генератор JSON Schema?
Выводит JSON Schema по примеру документа. Генератор описывает тип каждого свойства, объединяет элементы массива в одну схему items, перечисляет обязательные ключи, помечает значения с null объединениями типов и умеет распознавать распространённые форматы строк.
Как пользоваться Генератор JSON Schema
- Вставьте JSON в поле Входные данные JSON либо воспользуйтесь Загрузить пример или Открыть файл.
- При желании задайте Заголовок схемы.
- Переключайте Отмечать ключи как обязательные, Определять форматы строк и Запретить дополнительные свойства.
- Результат 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).