Генератор и валидатор 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

  1. Выберите «Генерация», чтобы построить схему, или «Валидация», чтобы проверить документ.
  2. В «Генерации» вставьте образец JSON и переключите опции required, additionalProperties и формата.
  3. Выберите draft-07 или 2020-12, затем скопируйте или скачайте получившийся schema.json.
  4. В «Валидации» вставьте JSON Schema слева и документ JSON справа.
  5. Прочитайте значок 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.

Частые ошибки и устранение неполадок

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

Какой 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, работают полностью в вашем браузере, поэтому вставленные образец, схема и документ обрабатываются локально и остаются на вашем устройстве.

Связанные инструменты

Все инструменты ArrayKit