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.
Оцените инструмент
Помогите нам стать лучше
Ваша оценка на Яндексе окажет нам поддержку!
Оставить оценку на ЯндексеРасскажите, чего не хватило.
Другие инструменты
JSON Formatter
Форматирование и починка JSON в браузере, с замечаниями о дублях и длинных числ…
Тестер регулярных выражений
Проверка regex с разбором по-русски и защитой от зависания
JWT Decoder — разбор токена
Разбор JWT с объяснением полей и проверкой подписи
Конвертер CSV в JSON
Таблица в JSON с честными типами и обратной сверкой
Конвертер JSON в CSV
JSON в таблицу для Excel, со сверкой и защитой от формул
Форматирование SQL-запросов
Читаемый вид запроса, сверка с исходником и разбор опасных мест
XML форматирование онлайн
Читаемый XML, ошибки по-русски с подсказкой, сверка с исходником
XML-валидатор онлайн
Разметка, схема XSD и правила карты сайта, YML, RSS — с путём до ошибки