Генератор и валидатор JSON Schema
Сгенерируйте JSON Schema из образца или проверьте документ JSON по схеме прямо в вашем браузере. Ваши данные никогда не покидают устройство.
Генерация схемы и валидация ajv работают локально в вашем браузере, поэтому ваш образец JSON, схема и документ никогда не загружаются.
Нужны типы TypeScript вместо этого? Попробуйте JSON в TypeScript.
Об инструменте Генератор и валидатор JSON Schema
Этот генератор JSON Schema превращает образец JSON в готовую к использованию JSON Schema, а встроенный валидатор проверяет любой документ JSON по предоставленной схеме. В режиме генерации он обходит ваш образец, выводит типы для объектов, массивов, строк, чисел, булевых значений и null, объединяет элементы массива и может пометить каждое свойство обязательным, задать additionalProperties в false и определить форматы строк вроде email, date, date-time, uri и uuid. Выберите draft-07 или 2020-12 для вывода. В режиме валидации он запускает ajv с allErrors и ajv-formats, затем перечисляет каждую ошибку с её путём в данных и сообщением. Инструмент создан для разработчиков API, backend-инженеров и всех, кто определяет или тестирует контракты JSON. Всё работает в вашем браузере, поэтому вставленные образец и схема остаются на вашем устройстве.
Возможности
- Выводит JSON Schema из вставленного образца JSON с правильными типами для объектов, массивов, строк, чисел, целых, булевых и null
- Объединяет элементы массива в одну схему items и выдаёт items:{} для пустых массивов
- Переключатель для пометки каждого свойства обязательным, по объектам
- Переключатель additionalProperties:false, чтобы запереть объекты на известных ключах
- Необязательный вывод формата строк для значений email, date, date-time, uri и uuid
- Выбор вывода draft-07 или 2020-12, который задаёт диалект $schema
- Проверка любого документа JSON по схеме с помощью ajv с allErrors и ajv-formats
- Скопируйте сгенерированную схему или скачайте её как schema.json
Как использовать Генератор и валидатор JSON Schema
- Выберите «Генерация», чтобы построить схему, или «Валидация», чтобы проверить документ.
- В «Генерации» вставьте образец JSON и переключите опции required, additionalProperties и формата.
- Выберите draft-07 или 2020-12, затем скопируйте или скачайте получившийся schema.json.
- В «Валидации» вставьте JSON Schema слева и документ JSON справа.
- Прочитайте значок valid/invalid и список ошибок, каждая с путём в данных.
Пример
Ввод
{
"id": 1,
"name": "Ada",
"email": "ada@example.com",
"tags": ["a", "b"]
}
Результат
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["id", "name", "email", "tags"]
}
С включёнными required и выводом формата образец даёт схему draft-07.
Частые ошибки и устранение неполадок
- В сгенерированной схеме нет массива required, хотя присутствует каждый ключ. — Включите «Пометить все свойства обязательными»; по умолчанию генератор выводит только типы и оставляет required пустым, чтобы не пере-ограничивать необязательные поля.
- Валидация сообщает «Invalid JSON Schema» до проверки документа. — Сама панель схемы должна быть корректным объектом JSON, который ajv может скомпилировать; сначала исправьте синтаксис JSON или неизвестные ключевые слова в схеме.
- Значение, похожее на дату, типизируется как обычная строка. — Включите «Выводить форматы строк». Определение консервативно и добавляет format только когда значение образца совпадает с шаблоном email, date, date-time, uri или uuid.
- Схему 2020-12 отклоняет валидатор, ожидающий draft-07. — Переключите селектор draft под вашу цель. Это меняет лишь URL $schema и незначительные различия диалектов между двумя draft.
Часто задаваемые вопросы
- Какой draft JSON Schema использует генератор?
- По умолчанию draft-07, с опцией 2020-12. Выбор задаёт URL диалекта $schema в выводе и незначительные различия между draft; выведенная структура в остальном одинакова.
- Как определяются обязательные свойства при генерации схемы?
- По умолчанию ни одно свойство не помечается обязательным, поэтому схема принимает частичные объекты. Включите «Пометить все свойства обязательными», чтобы добавить каждый ключ каждого объекта в его массив required.
- Как валидатор сообщает об ошибках?
- Он запускает ajv с включённым allErrors, поэтому вы получаете каждую ошибку сразу. Каждая ошибка показывает путь экземпляра JSON (например /items/0/id) и читаемое сообщение, включая пропущенные обязательные ключи и неожиданные дополнительные свойства.
- Выводит ли генератор форматы строк вроде email или date?
- Да, когда включено «Выводить форматы строк». Он проверяет строковые значения образца по шаблонам для email, date, date-time, uri и uuid и добавляет совпавшее ключевое слово format; значения, не совпавшие ни с одним, остаются обычными строками.
- Как он выводит схему для массивов?
- Он объединяет схемы всех элементов массива в одну схему items. Смешанные объектные элементы объединяются по свойствам, ключ, отсутствующий хотя бы в одном элементе, выпадает из required, а пустой массив становится items:{}.
- Загружается ли куда-либо мой образец JSON или схема?
- Нет. Генерация и валидация, включая ajv, работают полностью в вашем браузере, поэтому вставленные образец, схема и документ обрабатываются локально и остаются на вашем устройстве.
Связанные инструменты
- Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
- JSON в TypeScript — Генерируйте интерфейсы TypeScript из образца JSON.
- Просмотрщик JSON — Текстовый и древовидный просмотр со сворачиванием/разворачиванием и путями узлов.
- JSON Diff — Сравнение двух документов JSON со структурным различием.
- JSON в код — Генерируйте типы Go, Rust, Python, Java, Kotlin, C# и TypeScript из JSON.
- Форматировщик OpenAPI / Swagger — Форматируйте и проверяйте спецификации OpenAPI / Swagger (JSON или YAML) и считайте пути и операции.
Все инструменты ArrayKit