Перейти к содержимому
Aback Tools Logo

Генератор JSON Schema

Мгновенно создавайте полную JSON Schema Draft-07 или Draft 2020-12 из любого JSON-payload прямо в браузере. Определяет типы, обязательные поля, форматы строк и структуры вложенных объектов. Полностью на стороне клиента — ваши данные никогда не покидают устройство.

JSON Schema Generator

Paste or upload a JSON payload to instantly generate a complete JSON Schema. Supports Draft-07 and Draft 2020-12 with configurable required fields, format detection, and description placeholders. All processing happens locally in your browser.

Optional title added to the root schema object

Почему стоит использовать наш генератор JSON Schema?

  • Мгновенный вывод схемы: создайте полную JSON Schema из любого JSON-payload за миллисекунды. Движок обходит каждый вложенный объект и массив, определяет типы, распознаёт форматы строк и строит полностью структурированную схему без обработки на сервере.
  • Полная приватность данных: ваши JSON-payload-ы никогда не покидают устройство. Вся генерация схем выполняется локально в браузере, что делает инструмент безопасным для ответов API, записей баз данных и любых конфиденциальных бизнес-данных, которые нужно задокументировать.
  • Draft-07 и Draft 2020-12: выберите между JSON Schema Draft-07 (широко поддерживается валидаторами вроде AJV и jsonschema) и современной спецификацией Draft 2020-12. Оба варианта вывода включают корректный URI $schema, массивы required и аннотации форматов.
  • 100 % бесплатно, без ограничений: без подписок, ограничений размера файла, квот использования и без необходимости создавать аккаунт. Создавайте JSON Schema из payload-ов любого размера сколько угодно раз — полностью бесплатно навсегда.

Типичные сценарии использования генератора JSON Schema

  • Документация API: создавайте JSON Schema из реальных payload-ов ответов API, чтобы документировать тела запросов и ответов в спецификациях OpenAPI. Вставьте реальный ответ API и получите готовую схему, точно отражающую структуру данных, которую возвращают ваши эндпоинты.
  • Валидация во время выполнения: создавайте схемы валидации для AJV, jsonschema или Zod из имеющихся JSON-данных. Используйте созданную схему Draft-07 прямо в middleware валидации на Node.js, Python или Go, чтобы обеспечивать соблюдение контрактов данных на границах API и не допускать некорректные payload-ы в базу данных.
  • Генерация типов TypeScript: используйте созданную JSON Schema как вход для инструментов вроде json-schema-to-typescript или quicktype, чтобы автоматически получить интерфейсы и типы TypeScript. Начните с реального JSON-payload и получите точные строго типизированные интерфейсы без ручного написания.
  • Проектирование схемы базы данных: создавайте схемы из документов MongoDB или экспортов элементов DynamoDB, чтобы понять форму данных до проектирования индексов или перехода на реляционную базу. Выведенные обязательные поля и типы дают отправную точку для определений столбцов и ограничений.
  • Настройка конструкторов форм: создавайте JSON Schema для динамических конструкторов форм вроде react-jsonschema-form или JSON Forms. Добавьте заполнители описаний с помощью опции генератора, а затем заполните их, чтобы получить понятные метки и подсказки для каждого поля формы.
  • Тестирование контрактов данных: зафиксируйте схему заведомо корректного ответа API и используйте её как контракт в потребительских контрактных тестах с Pact или похожими фреймворками. Выявляйте критические изменения, когда провайдер удаляет обязательное поле или меняет тип свойства между релизами.

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

Генератор JSON Schema анализирует JSON-payload и создаёт полный документ JSON Schema, соответствующий стандартам, полностью в вашем браузере. Он поддерживает как JSON Schema Draft-07 — самую распространённую версию, поддерживаемую AJV, jsonschema и большинством инструментов OpenAPI — так и современную спецификацию Draft 2020-12, используемую новыми валидаторами и генераторами кода. Данные никогда не отправляются на сервер.

Draft-07 против Draft 2020-12: Draft-07 использует URI http://json-schema.org/draft-07/schema# и является самым безопасным выбором для максимальной совместимости с существующими валидаторами, инструментами OpenAPI 3.0 и генераторами кода. Draft 2020-12 использует HTTPS-URI https://json-schema.org/draft/2020-12/schema и вводит более чистую семантику для $ref , unevaluatedProperties и префиксных элементов. Выбирайте 2020-12, если ориентируетесь на AJV 8+, цепочку инструментов json-schema-to-typescript v12+ или любой валидатор, явно поддерживающий новейшую спецификацию.

Вывод типов

Генератор обходит каждое значение входного документа и сопоставляет его с правильным типом JSON Schema. JSON-строки становятся "type": "string" , целые числа — "type": "integer" , числа с плавающей точкой — "type": "number" , булевы значения — "type": "boolean" , а null — "type": "null" . Вложенные объекты рекурсивно преобразуются в под-схемы properties , а массивы анализируются для получения схемы items .

Вывод обязательных полей

Когда включена опция «Определять обязательные поля», генератор добавляет массив required в каждую схему объекта, включая каждый ключ, значение которого не null . Для массивов объектов с включённой опцией «Объединять схемы элементов массива» ключ помечается обязательным только если он встречается в каждом элементе массива — это даёт консервативный набор обязательных полей, отражающий реальные данные, а не одну выборку.

Объединение схем элементов массива: когда массив содержит несколько объектов, опция «Объединять схемы элементов массива» объединяет все схемы элементов в одну представительную схему. Свойства, встречающиеся в каждом элементе, помечаются обязательными; встречающиеся только в некоторых — включаются, но не как обязательные. Это даёт более точную схему items , чем использование только первого элемента, особенно для разнородных массивов из реальных ответов API.

Определение форматов строк

Генератор автоматически распознаёт шесть распространённых форматов строк. Строки date-time в формате ISO 8601, например 2024-03-15T10:30:00Z , помечаются как format: date-time . Простые даты вроде 2024-03-15 получают format: date . Адреса электронной почты, URI HTTP/HTTPS, строки UUID v4 и адреса IPv4 определяются и помечаются соответствующими ключевыми словами формата. Отключите эту опцию, если все строки должны остаться без пометок.

Заполнители описаний: включение опции «Добавлять заполнители описаний» вставляет пустую строку description в каждое свойство и каждую схему объекта. Это полезно, если вы планируете использовать созданную схему как основу для документации API или конфигурации конструктора форм — можно заполнить описания, не добавляя ключи вручную к каждому свойству.

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

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

Draft-07 — наиболее широко поддерживаемая версия, совместимая с AJV, jsonschema и инструментами OpenAPI 3.0. Draft 2020-12 — новейшая спецификация с более чистой семантикой $ref и новыми ключевыми словами, такими как unevaluatedProperties. Выбирайте Draft-07 для максимальной совместимости и Draft 2020-12, если ориентируетесь на современные валидаторы вроде AJV 8+.

Когда включена опция «Определять обязательные поля», каждое свойство, значение которого не null, добавляется в массив required. Для массивов объектов с включённым объединением поле помечается обязательным только если оно встречается в каждом элементе массива. Это даёт консервативный набор обязательных полей, отражающий реальные данные, а не одну выборку.

Генератор определяет шесть форматов: date-time (ISO 8601 со временем), date (только дата ISO 8601), адреса электронной почты, URI HTTP/HTTPS, строки UUID v4 и адреса IPv4. Каждый помечается соответствующей ключевой формой JSON Schema. Отключите «Определять форматы строк», если все строки должны остаться без пометок.

Когда опция включена, генератор объединяет схемы всех объектов массива в одну представительную схему items. Свойства, присутствующие в каждом элементе, помечаются как обязательные; свойства, присутствующие только в некоторых, включаются, но как необязательные. Это даёт более точную схему, чем использование только первого элемента массива.

Да. Созданная схема Draft-07 сразу пригодна для AJV, jsonschema (Python) и большинства других валидаторов. Скопируйте вывод, сохраните как файл .json и передайте своему валидатору. Для AJV 8+ можно также использовать вывод Draft 2020-12, выбрав эту опцию перед созданием.

Полностью. Вся генерация схем выполняется локально в вашем браузере без загрузки на сервер. Ваши JSON-payload-ы, ответы API и записи базы данных никогда не покидают устройство. Это делает инструмент безопасным для конфиденциальных бизнес-данных, учётных данных и любых проприетарных JSON-структур, которые нужно задокументировать.