Усі статті

JSON Schema: як описати й перевірити структуру JSON

JSON Schema — це спосіб описати, якою має бути структура JSON-документа, за допомогою іншого JSON-документа. Замість того, щоб перевіряти дані вручну умовами в коді, можна декларативно описати очікувані типи, обов’язкові поля та обмеження значень, а потім перевіряти дані автоматично.

Основні ключові слова draft-07

  • type — очікуваний тип значення (object, string, number, array тощо).
  • required — список полів об’єкта, які обов’язково мають бути присутні.
  • properties — опис схеми для кожного поля об’єкта окремо.
  • enum — обмеження значення конкретним переліком варіантів.
  • minimum/maximum, minLength/maxLength — числові й рядкові обмеження.

Чим це відрізняється від валідації синтаксису

Звичайна валідація JSON перевіряє лише, що текст синтаксично коректний — правильні дужки, лапки, коми. JSON Schema перевіряє значно більше: чи є в об’єкті обов’язкове поле email, чи є значення age числом, а не рядком, чи входить status у дозволений перелік значень.

Навіщо це потрібно

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

additionalProperties: чи можна додавати зайві поля

За замовчуванням JSON Schema дозволяє в об’єкті будь-які поля понад ті, що описані в propertiesrequired і properties лише встановлюють мінімум, а не вичерпний перелік. Якщо потрібно заборонити невідомі поля (наприклад, щоб зловити одруку в назві ключа), треба явно додати "additionalProperties": false — без цього прапорця схема лишається «відкритою».

Спробувати інструмент