JSON Schema Validator — проверка JSON по схеме

Проверяем документ JSON по схеме JSON Schema: все ошибки разом, каждая с путём до значения, строкой в документе и подсказкой. Замечаем опечатки в именах полей и ошибки в самой схеме, собираем черновик схемы из примера. Всё в браузере.

Данные и схема никуда не отправляются: разбор и проверка считаются в браузере. Черновик стандарта определяется по полю $schema; если его нет, берётся 2020-12.

Что проверяется

Сначала оба поля разбираются как JSON, и ошибка разбора показывается со строкой, столбцом и подсказкой: одинарные кавычки, хвостовая запятая, ключ без кавычек, комментарий. Потом документ сверяются со схемой, и собираются все ошибки, а не первая.

Каждая ошибка несёт путь до значения вроде /items/1/price, номер строки в документе и объяснение, что не так: «ожидалось число, а здесь строка "12500.50" — число записано в кавычках, уберите их».

Опечатки в именах полей

Самая частая причина ошибки «нет обязательного поля» — поле есть, но называется чуть иначе: custmer вместо customer. Когда обязательного поля нет, а рядом лежит похожее, мы называем его. То же для значений из списка enum: «Paid» вместо «paid» отличается только регистром, и об этом сказано.

Ошибки в самой схеме

Схема тоже бывает неправильной, и тогда проверка документа бессмысленна. Неизвестный тип, регулярное выражение, которое не читается, ссылка $ref в никуда, minimum больше maximum, required не списком — всё это называется отдельным списком, а документ проверяются той частью схемы, которая читается.

Черновики стандарта

Поддерживаются draft-04, draft-06, draft-07, 2019-09 и 2020-12. Черновик берётся из поля $schema или выбирается вручную: от него зависит, как читаются items, prefixItems, exclusiveMaximum и $ref.

Что не проверяется, названо в оговорках: unevaluatedProperties, $dynamicRef, ссылки на другие файлы и редкие форматы. Остальное проверено.

Схема из документа

Если схемы ещё нет, кнопка собирает её черновик по примеру: типы значений, вложенные объекты, общие поля у элементов массива, форматы дат и почты по виду строк. Все поля примера становятся обязательными — это заготовка, которую нужно уточнить, а не истина.

Документ остаются в браузере

В JSON бывают ответы API с именами, адресами и токенами. На сервер ничего не уходит: разбор и проверка считаются на вашей стороне. Привести JSON в читаемый вид можно в JSON Formatter.

Другие инструменты