Генератор JSON Schema

Работает локально в браузере

Выводит JSON Schema Draft 2020-12 из образца JSON

Образец JSON

Вставьте образец JSON или загрузите пример, чтобы создать схему.
Что делает генератор JSON Schema

Он читает пример JSON и создаёт документ JSON Schema Draft 2020-12 с URI "$schema" https://json-schema.org/draft/2020-12/schema. Вложенные объекты превращаются во вложенные properties, массивы получают схему items, целые числа получают тип integer, остальные числа — number, а поля, допускающие null, используют список типов вроде ["string", "null"]. Если объект или массив встречается в одной позиции с другими типами, схема использует anyOf с отдельной веткой для каждого типа, поэтому смешанные массивы не ломают генерацию.

Как пользоваться
  1. 1.Вставьте образец JSON, загрузите или перетащите один файл .json либо загрузите пример. Точнее всего результат для массива из нескольких записей.
  2. 2.Схема обновляется по мере ввода; данные больше 2 МБ ждут нажатия «Создать схему».
  3. 3.При желании задайте заголовок и выберите «Определять форматы», «Добавлять примеры», «Выводить обязательные поля» и «Выводить enum».
  4. 4.Прочитайте заметки о необязательных полях, полях только с null, смешанных типах и enum.
  5. 5.Выберите «Проверить образец», затем скопируйте схему или скачайте schema.json.
Как работают параметры

Обязательными считаются ключи, которые есть в каждом объекте в данной позиции, поэтому в массиве записей ключ, которого нет хотя бы в одной записи, остаётся необязательным. По одному объекту нельзя понять, какие ключи необязательны, и инструмент об этом предупреждает. Форматы (email, uri, date-time, date, time, uuid, ipv4) добавляются только тогда, когда все строки в позиции точно соответствуют одному формату; при выключенном определении ключевых слов format нет вовсе. Enum по умолчанию выключены и выводятся только для повторяющегося текста с небольшим числом вариантов, не похожего на ID, значение с форматом или свободный текст; в них всегда входят все значения образца.

Проверка, ограничения и конфиденциальность

«Проверить образец» компилирует схему в Ajv в строгом режиме Draft 2020-12 вместе с ajv-formats и проверяет образец, показывая JSON Pointer и правило для каждой ошибки. Схема, выведенная из примеров, описывает только то, что есть в образце: объекты остаются открытыми для дополнительных ключей, а диапазоны, шаблоны и длины значений не угадываются. Числа за пределами точности JavaScript получают правильный тип, но не попадают в примеры. Всё выполняется в браузере, а валидатор загружается только по запросу.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools