Be Everywhere, Stay Undetectable. Manage multiple accounts safely with unlimited local profiles. Discover Undetectable. Learn More

Валидатор JSON Schema

0 (оценок: 0)

Вставьте данные JSON слева и схему JSON Schema справа либо откройте файлы. Данные проверяются по мере набора, либо нажмите «Проверить». Ничего не загружается: всё остаётся в вашем браузере.

Можно также перетащить файл в поле.
Можно также перетащить файл в поле.

Валидатор JSON Schema онлайн

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

Валидатор JSON или валидатор JSON Schema

Валидатор JSON проверяет только синтаксис: кавычки, запятые, скобки. Валидатор JSON Schema идёт дальше и проверяет содержимое: на месте ли обязательные поля, правильного ли типа каждое значение, в диапазоне ли числа, соответствуют ли строки шаблону, используются ли только допустимые значения. Эта страница делает и то и другое: синтаксическая ошибка в любом из полей показывается первой со строкой и столбцом, затем данные проверяются по схеме. Для проверки только синтаксиса и форматирования используйте форматирование и валидатор JSON.

Пример

В данных цена записана в кавычках:

{
  "name": "DIEG",
  "price": "19.99"
}

Схема требует число:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "price": { "type": "number" }
  },
  "required": ["name", "price"]
}

Результат — «Некорректно» с одной ошибкой в $.price: «Ожидалось число, но значение является строкой ("19.99"). Уберите кавычки вокруг 19.99, чтобы получилось число». Нажмите «Пример», чтобы попробовать.

Как читать результат

  • Путь: где проблема, записан как JSONPath: $ — весь документ, $.items[0].price — цена первого элемента.
  • Проблема: что не так, простыми словами, с подсказкой для типичных случаев: число или true/false в кавычках, число там, где ожидается текст, дробь там, где нужно целое.
  • Место: строка и столбец в ваших данных; щелчок выделяет значение в поле. Недостающее обязательное поле указывает на объект, в котором оно должно быть.
  • Правило: часть схемы, которая нарушена, например /properties/price/type; щелчок выделяет её в поле схемы.
  • Результат можно скопировать текстом для тикета или чата.

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

Валидаторы молча игнорируют незнакомые ключевые слова, поэтому схема с "requried" вместо "required" пропускает всё. Этот инструмент перечисляет такие опечатки с подсказкой, а также значения неверного вида: несуществующее имя типа, required, который не является списком, отрицательный minLength, шаблон, не являющийся корректным регулярным выражением.

Версии и ключевые слова

  • Draft-04, Draft-07, 2019-09 и 2020-12. При «Draft: автоматически» версия берётся из строки $schema схемы, а без неё используется 2020-12; версию можно выбрать и самому. Страница сообщает, какая использовалась.
  • Все обычные ключевые слова: type, required, properties, additionalProperties, patternProperties, items, prefixItems, enum, const, minimum и maximum, minLength и maxLength, pattern, minItems и maxItems, uniqueItems, allOf, anyOf, oneOf, not, if/then/else, dependentRequired, $ref и $defs.
  • Ключевое слово format проверяется: email, date, date-time, time, uri, uuid, ipv4, ipv6, hostname и другие.

Для чего это нужно

  • Тестирование API: соответствует ли ответ контракту из документации, с нужными полями, типами, вложенными объектами и массивами?
  • Файлы конфигурации: полон и корректен ли файл настроек перед развёртыванием?
  • Обмен данными: то ли в импортированных или экспортированных записях, что ожидает другая сторона?
  • Написание схемы: проверьте её на хороших и плохих примерах и посмотрите, что она пропускает.

Ограничения

  • $ref должен указывать внутрь схемы, например #/$defs/address. Инструмент работает в браузере и не скачивает другие схемы, поэтому ссылки на другие файлы или URL (обычные для схем из SchemaStore) обработать нельзя; страница об этом сообщает.
  • $dynamicRef и пользовательские словари поддерживаются лишь частично. По официальному набору тестов JSON Schema проверка совпадает примерно с 96–97 процентами утверждений для Draft-04, Draft-07 и 2019-09 и с 93 процентами для 2020-12; остальное — эти ссылки и правило, по которому format является лишь аннотацией (здесь он проверяется).
  • Оба текста должны быть строгим JSON: комментарии и лишние запятые — синтаксические ошибки. Схемы в YAML не читаются.
  • Всё хранится в памяти браузера, поэтому файлы в много мегабайт работают медленно, особенно на телефоне.

Похожие инструменты

JSON: форматирование и валидатор

Форматируйте, минифицируйте и проверяйте JSON онлайн. Откройте файл, найдите строку и столбец ошибки, скачайте результат. Всё в браузере.

19
HTML в Markdown

Конвертер HTML в Markdown онлайн для Hugo, Astro, Grav и других. Вставьте страницу или форматированный текст, front matter по желанию. Работает в браузере.

15
Кодирование и декодирование Base64

Кодирование текста в Base64 и декодирование Base64 в текст онлайн, мгновенно в браузере. Поддерживаются UTF-8 и URL-safe Base64.

26

Популярные инструменты