СгенерируйтеJSON Schema (draft-07) по примеру данных JSON или проверьте любой документ JSON по любой схеме с понятными сообщениями об ошибках. Также: Форматировщик JSON | Вычислитель JSONPath | Все инструменты JSON. Вся обработка выполняется локально в вашем браузере: ничего не загружается.
Сгенерировать схемуПроверить данные
Вставьте ниже один объект JSON (или массив объектов: свойства объединяются, а required берётся как объединение). Схема выводится автоматически; при необходимости отредактируйте её, чтобы задать более строгие правила.
Добавить заголовок $schema — добавляет объявление draft-07 в начало, чтобы валидаторы знали, какой диалект использует схема. Пример: "$schema": "http://json-schema.org/draft-07/schema#"
Отметить ключи required — добавляет в список обязательных каждый ключ из примера JSON. Пример: "required": ["name", "price", "inStock"]
Свернуть небольшие наборы значений в enum — если в скалярном массиве 2–8 уникальных значений, тип элемента сужается до enum. Пример: "tags": ["sale", "new", "sale"] → "tags": {"type": "array", "items": {"type": "string", "enum": ["sale", "new"]}}
Схемы интерпретируются как draft-07. Проверка поддерживает type, enum, required, properties, patternProperties, additionalProperties, items, границы чисел, длину и шаблон строк, массивы и allOf/anyOf/oneOf/not.
Вход — пример JSON
Сгенерированная схема (можно редактировать)
Схема (draft-07)
Данные для проверки
Результат
Заметки генератора: целые числа становятся "integer"; строки получают format только при включённом флажке форматов; несколько объектов JSON в массиве объединяются (ключи одного типа сохраняют первый тип, смешанные типы переходят в массив type; required — объединение всех образцов). В режиме Проверить данные каждое нарушенное правило сообщается с путём JSON Pointer (например .items[0].price), чтобы сразу перейти к проблемному значению.
JSON Schema — контракт, а не система типов
JSON Schema описывает, каким должен быть корректный документ: какие ключи обязательны, какие типы у значений, диапазоны и шаблоны. Проверка сверяет данные с этим контрактом и ничего не преобразует. Схемы версионируются по диалектам (draft): эта страница генерирует draft-07, самый широко поддерживаемый диалект; актуальный сейчас — 2020-12.
Сгенерированная схема — это предположение по образцам: ужесточите required, enum и format вручную.
🔷 Инструменты JSON
Генерируйте JSON Schema по примерам и проверяйте данные JSON по схемам draft-07.