Перейти до вмісту

Валідатор схеми JSON

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

Введення
Схема JSON
Вихід

Валідатор схеми JSON

Вставте документ JSON з одного боку та схему JSON з іншого, і цей інструмент повідомить вам, чи збігається документ, а якщо ні, то куди саме та чому. Про кожну проблему повідомляється як один рядок із шляхом JSON-покажчика до значення, що викликає порушення, ключовим словом схеми, яке виявилося невдалим, і фактичним знайденим значенням, тож ви можете відразу перейти до виправлення, а не шукати вручну велике корисне навантаження.

Валідатор охоплює повсякденне ядро схеми JSON draft-07: «тип» (включно з об’єднаними масивами, як-от [«string»,»null»] для полів із значенням null), «required» і «properties», «additionalProperties» як логічне значення або власну схему, «items» для перевірки списку та кортежу, "minItems"/"maxItems"/"uniqueItems", числові ключові слова "minimum"/"maximum"/"exclusiveMinimum"/"exclusiveMaximum"/"multipleOf", ключові слова рядка "minLength"/"maxLength"/"pattern", "enum" і "const", а також комбінатори "anyOf"/"allOf"/"oneOf"/"not". Він також розпізнає вказівники «$ref» на власний розділ схеми «#/definitions» або «#/$defs» — це зручно для схем, які виключають спільну форму об’єкта — і виявляє «$ref», який повертається назад, замість того, щоб заморозити сторінку.

Це валідатор, а не конструктор форм, керований схемою: він не отримує схему з URL-адреси чи "$id", і ніколи не буде, тому що це означатиме надсилання ваших даних або визначення вашої схеми з вашого пристрою. Будь-яке «$ref», що вказує поза документом, повідомляється як непідтримуване, а не мовчки ігнорується, тому ви завжди точно знаєте, що було перевірено, а що ні.

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

FAQ

Яку чернетку схеми JSON це підтримує?
Практична підмножина draft-07: тип (включно з об’єднанням і масивами з можливістю нульового значення), обов’язкові, властивості, додаткові властивості, елементи, minItems/maxItems/uniqueItems, ключові слова числових і рядкових меж, enum/const, anyOf/allOf/oneOf/not і локальні покажчики $ref на «#/definitions» або «#/$defs».
Чи може він слідувати за $ref до іншого файлу чи URL-адреси?
Ні. Вирішуються лише локальні покажчики на власні "#/definitions" або "#/$defs" тієї самої схеми. $ref, що вказує кудись ще, повідомляється як непідтримуваний, а не отриманий, оскільки отримання віддаленої схеми означатиме надсилання даних із вашого пристрою.
Що станеться, якщо моя схема має циклічне $ref?
Вона виявляється та повідомляється як помилка «$ref» замість того, щоб заморозити вкладку — валідатор відстежує посилання, за якими він зараз стежить, і зупиняється, щойно одне повторюється.
Як повідомляється про кожну помилку?
Один рядок для кожної проблеми, із шляхом вказівника JSON до значення (наприклад, "/user/age"), ключовим словом схеми, яке не вдалося виконати (наприклад, "minimum" або "required"), і фактичним значенням, яке там було знайдено.
Чи завантажено кудись мій документ і схему JSON?
Ні. Перевірка повністю виконується у вашому браузері за допомогою вбудованого синтаксичного аналізатора JSON — ані дані, ані схема ніколи не залишають ваш пристрій, і жодна схема ніколи не отримується з мережі.