📋

Генератор JSON Schema

Автогенерация JSON Schema из данных JSON с выводом типов

Ввод JSON

Опции Schema

Версия Schema
Draft 2020-12 (Latest)

Что такое JSON Schema

JSON Schema - это словарь, который позволяет аннотировать и проверять JSON документы. Он предоставляет контракт для данных JSON, определяя ожидаемую структуру, типы и правила валидации. JSON Schema широко используется в документации API, валидации данных, генерации кода и тестировании. Он помогает обеспечить качество данных и согласованность между приложениями.

Возможности

🔮

Интеллектуальный Вывод Типов

Автоматическое определение типов данных из значений JSON, включая строки, числа, логические значения, массивы, объекты и null, с интеллектуальным определением формата для email, URL, даты и времени
📋

Поддержка Множества Версий

Поддержка JSON Schema Черновик 2020-12, 2019-09, Черновик-07 и Черновик-04 с правильными URI $schema и функциями, специфичными для версии

Правила Валидации

Настройка обязательных полей, ограничений типов, валидации формата и строгого режима с контролем additionalProperties для надежного определения schema
⚙️

Гибкая Конфигурация

Включение или исключение описаний полей, примеров и строгих правил валидации на основе потребностей документации API и валидации

📋Руководство по использованию

1️⃣
Ввести данные JSON
Вставить образец данных JSON или загрузить пример для начала
2️⃣
Настроить опции
Выбрать версию Schema, включить обязательные поля, описания и другие опции
3️⃣
Сгенерировать Schema
Нажать генерировать для создания JSON Schema с автоматическим выводом типов
4️⃣
Использовать Schema
Скопировать или скачать сгенерированную schema для валидации API или документации

📚Техническое введение

📐Спецификация JSON Schema

JSON Schema - это декларативный язык для описания структуры и правил валидации данных JSON. Он использует ключевые слова, такие как 'type', 'properties', 'required', 'items' и 'additionalProperties', для определения ограничений. Спецификация эволюционировала через несколько черновых версий, при этом Draft 2020-12 является последней стабильной версией. Схемы сами по себе являются валидными JSON документами, которые можно использовать для валидации, документирования и генерации кода.

🔍Алгоритм Вывода Типов

Генератор анализирует значения JSON для вывода соответствующих типов schema. Для примитивов он определяет string, number, integer, boolean или null. Для строк он применяет определение формата с использованием шаблонов regex для идентификации email, uri, date, time, ipv4, ipv6 и других стандартных форматов. Для объектов он рекурсивно генерирует вложенные schema с определениями свойств. Для массивов он выводит schema из первого элемента.

Ключевые Слова Валидации

JSON Schema предоставляет богатые ключевые слова валидации: 'type' для типа данных, 'required' для обязательных полей, 'properties' для schema объектов, 'items' для массивов, 'minimum'/'maximum' для чисел, 'minLength'/'maxLength' для строк, 'pattern' для валидации regex, 'enum' для разрешенных значений и 'format' для семантической валидации, такой как email или URL. Эти ключевые слова комбинируются для создания всеобъемлющих правил валидации.

🔄Версии Schema

JSON Schema эволюционировал через несколько черновых версий: Черновик-04 (2013, широко поддерживается), Черновик-07 (2018, добавлен if/then/else), Черновик 2019-09 (введен $recursiveRef) и Черновик 2020-12 (последний, с $dynamicRef и улучшенным словарем). Каждая версия поддерживает обратную совместимость при добавлении новых функций. Ключевое слово $schema указывает, какую версию использует schema.

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

Что такое JSON Schema и зачем его использовать?

JSON Schema - это словарь для аннотирования и проверки JSON-документов. Он описывает структуру данных, ограничения и правила проверки, используя сам формат JSON. Преимущества включают: автоматическую проверку данных, документацию API, генерацию кода, улучшенный опыт разработчика и разработку на основе контрактов. Широко используется в проектировании API, проверке конфигурации и генерации форм.
💬

Может ли этот инструмент генерировать схему из любого JSON?

Да! Этот инструмент анализирует любой валидный JSON-ввод и генерирует соответствующую схему, совместимую с JSON Schema Черновик-07. Он обрабатывает все типы данных JSON: объекты, массивы, строки, числа, булевы значения и null. Он выводит типы, обязательные поля и базовые шаблоны из ваших примерных данных. Для сложных сценариев вам может потребоваться вручную доработать сгенерированную схему.
🔍

Насколько точна сгенерированная схема?

Генератор создает схемы на основе анализа примерных данных. Он точно определяет типы данных и структуры, но делает консервативные предположения об ограничениях. Например, он не узнает, должно ли число быть только положительным или строка должна соответствовать определенному шаблону, если эти ограничения не появляются во всех образцах. Всегда проверяйте и улучшайте сгенерированные схемы с помощью правил проверки, специфичных для вашей области.
💡

Могу ли я использовать сгенерированную схему для проверки?

Абсолютно! Сгенерированная схема полностью совместима с валидаторами JSON Schema, такими как Ajv, joi или библиотека json-schema. Вы можете использовать ее для проверки запросов/ответов API, файлов конфигурации или пользовательских вводов. Схема следует спецификации JSON Schema Draft-07 и может быть интегрирована в Node.js, Python, Java или любой язык с поддержкой JSON Schema.
📚

В чем разница между различными черновиками JSON Schema?

JSON Schema развивался через несколько черновиков (Черновик-04, Черновик-06, Черновик-07, 2019-09, 2020-12). Этот инструмент генерирует схемы Черновик-07, которые широко поддерживаются. Ключевые различия: Черновик-07 добавил условия if/then/else, Черновик 2019-09 ввел систему словаря, Черновик 2020-12 добавил unevaluatedProperties. Для большинства использований Черновик-07 обеспечивает отличную совместимость и набор функций.

📝Журнал Обновлений

📌v1.0.251025
v1.0.251026Создан инструмент Генератор JSON Schema; Поддержка нескольких версий Черновиков (2020-12, 2019-09, Черновик-07, Черновик-04); Интеллектуальный вывод типов с автоматическим определением формата (email, URL, дата, время); Редактор CodeMirror с автоматическим переключением темной темы; Параметры конфигурации для обязательных полей, описаний, примеров и строгого режима; Функции копирования и загрузки одним щелчком(26 октября 2025)

User Comments

0 / 2000
Loading...