Перейти к содержанию

Генератор JSON Schema

Создайте JSON Schema из примера JSON-документа, включая типы, вложенные объекты и форматы.

Входные данные
Выходные данные

Генератор JSON Schema

Вставьте пример JSON-документа — ответ API, файл конфигурации, экспорт базы данных — и этот инструмент автоматически выведет JSON Schema, описывающую его структуру: тип каждого поля, какие из них являются вложенными объектами или массивами, и как они связаны. Это быстрый способ создать валидацию для полезной нагрузки, которая у вас уже есть, без необходимости вручную писать каждое свойство.

Выберите версию схемы, которую ожидает ваш инструмент: draft-07 или 2020-12. Пометьте каждый ключ как обязательный или оставьте схему открытой без списка обязательных полей. Запретите дополнительные свойства, чтобы поймать опечатки и неожиданные поля, или определите форматы, такие как email, URI, UUID и дата-время, прямо из значений примера. Включение ограничений по длине и диапазону добавит minLength/maxLength и minimum/maximum границы, взятые непосредственно из введённых данных, а добавление описаний из имен полей превратит "firstName" в описание на естественном языке автоматически. Если в примере есть глубоко вложенные объекты, извлечение определений переместит каждую вложенную форму в отдельную повторно используемую запись вместо встраивания её везде, где она используется.

Если у вас есть несколько примеров одной записи, вставьте одно значение JSON на строку и включите объединение нескольких примеров: инструмент объединит их в одну схему, отражающую объединение всех полей и типов, которые он видел, вместо создания схемы только для первого примера. Инструмент принимает как Windows, так и Unix концы строк, и счётчик под результатом показывает, сколько свойств он обнаружил по мере ввода.

Всё работает локально в вашем браузере: ваш JSON никогда не загружается и не отправляется на сервер. Скопируйте созданную схему, загрузите её как .txt файл или отправьте результат прямо обратно в ввод для дальнейшего уточнения.

FAQ

В чем разница между draft-07 и 2020-12?
Обе версии JSON Schema имеют немного отличающиеся имена ключевых слов — например 2020-12 использует $defs, где draft-07 использует definitions. Выберите ту версию, которую ожидает ваш валидатор или инструмент.
Могу ли я создать схему из более чем одного примера?
Да. Включите объединение нескольких примеров и вставьте одно значение JSON на строку — инструмент объединит их в одну схему, охватывающую все поля и типы, которые он видел.
Это угадывает форматы, такие как email или UUID?
Когда включен вывод формата, строковые значения, соответствующие известному шаблону — адрес email, URI, UUID или дата-время ISO — получают соответствующее ключевое слово формата, но только если каждое значение примера для этого поля согласуется.
Схема отклонит поля, которые я не включил в свой пример?
Только если вы включите "Запретить дополнительные свойства". По умолчанию схема описывает только то, что она видела, и разрешает дополнительные поля.
Мой JSON загружается куда-то?
Нет. Создание схемы работает полностью в вашем браузере — ваш JSON никогда не покидает ваше устройство.