onlinetools.dev

Валідатор і генератор JSON Schema

Перевіряйте JSON за схемою або виводьте схему зі зразка даних

Працює локально
loading…
Про цей інструмент

Два напрямки однієї дисципліни: вставте зразок JSON і отримайте виведену з нього схему draft-07, або вставте дані разом зі схемою й побачте кожне порушення з його шляхом JSON. Перевірка працює на Ajv — тому самому рушії, який використовує більшість сервісів на Node, — тож що проходить тут, пройде і в CI.

Виведення мислить продакшн-категоріями: ключі об’єктів стають типізованими властивостями й записами required, масиви зливають форми всіх своїх членів, цілі числа відрізняються від дробових, а ключі, наявні лише в частині елементів масиву, слушно лишаються поза required. Результат — відправна точка, яку ви затягуєте форматами, діапазонами й шаблонами.

Відповіді API та файли конфігурації — саме ті дані, які найменше хочеться бачити на сторонньому сервері. І виведення, і перевірка виконуються повністю у вашому браузері.

Часті запитання

Яку чернетку JSON Schema підтримано?
Виведення видає draft-07 — чернетку з найширшою підтримкою серед редакторів і валідаторів. Перевірка приймає draft-07 і попередні чернетки, які Ajv розуміє в несуворому режимі; ключові слова 2019-09/2020-12 здебільшого теж працюють, бо невідомі ключові слова ігноруються, а не викликають фатальну помилку.
Що означає $ у шляхах порушень?
Це корінь документа, у стилі JSONPath: $.age означає властивість age верхнього рівня, а $.items.2.name — name третього елемента масиву. Порожній шлях ($) означає, що порушення стосується самого кореня документа — хибний тип або відсутня обов’язкова властивість.
Чому виведена схема суворіша або вільніша, ніж я очікував?
Вона описує точно той зразок, який ви дали: поля, наявні всюди, стають обов’язковими, а дозволені лише спостережені типи. Згодуйте їй різноманітніший зразок (масив репрезентативних об’єктів) заради загальнішої схеми, а тоді підправте вручну — виведення не може знати наміру.
Чи підтримує перевірка format, pattern та інші ключові слова обмежень?
Структурні ключові слова (type, required, properties, items, enum, minimum, pattern…) виконуються повністю. Рядки format на кшталт "email" чи "date-time" не перевіряються — це віддзеркалює специфікацію JSON Schema, де format типово є анотацією, і убезпечує від хибної впевненості.
Пов’язані інструменти