Документация / JSON Schema

Перечисления и константы

Эти ключевые слова работают для значений любого типа.

Перечисление

enum — список допустимых значений. Значение документа должно совпасть с одним из них полностью — включая тип: строка "1" не равна числу 1.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Статус заказа",
  "enum": ["new", "paid", "shipped", "delivered", "cancelled"]
}
"paid"
"Paid"

В enum можно смешивать типы и использовать null: "enum": ["red", "green", null, 42].

Константа

const — ровно одно допустимое значение. Удобно в сочетании с oneOf, когда по значению поля определяется вид объекта.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "country": { "const": "RU" },
    "inn": { "type": "string", "pattern": "^(\\d{10}|\\d{12})$" }
  },
  "required": ["country", "inn"]
}
{ "country": "RU", "inn": "7707083893" }
{ "country": "KZ", "inn": "7707083893" }

Перечисление с описаниями

У enum нельзя подписать отдельные значения. Если нужны подписи, используйте oneOf с const и title:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    { "const": "card", "title": "Банковская карта" },
    { "const": "sbp", "title": "Система быстрых платежей" },
    { "const": "cash", "title": "Наличными курьеру" }
  ]
}

Обновлено: 30 сентября 2026 г.