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

Типы данных

Ключевое слово type задаёт тип значения. Возможные типы соответствуют типам JSON: string, number, integer, object, array, boolean и null. Можно указать список типов — тогда подходит любой из них.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": ["string", "null"]
}
null
42

Строки

Ключевое словоЗначение
minLength, maxLengthМинимальная и максимальная длина в символах (Unicode, а не байтах)
patternРегулярное выражение (ECMA-262), которому должна соответствовать строка
formatСемантический формат: email, date, uuid и т. д. — см. «Форматы»

Шаблон pattern не привязан к началу и концу строки: "\\d+" найдёт цифры в «abc123». Чтобы проверить строку целиком, используйте ^ и $.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Российский номер телефона в формате +7XXXXXXXXXX",
  "type": "string",
  "pattern": "^\\+7\\d{10}$"
}
"+79161234567"
"8 (916) 123-45-67"

Числа

Тип number — любое число, integer — целое (значение 1.0 тоже считается целым).

Ключевое словоЗначение
minimum, maximumНижняя и верхняя граница включительно
exclusiveMinimum, exclusiveMaximumГраницы, которые само значение не может принимать
multipleOfЗначение должно делиться на это число без остатка
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Скидка в процентах с шагом 5",
  "type": "integer",
  "minimum": 0,
  "maximum": 100,
  "multipleOf": 5
}
15
17

В draft-04 exclusiveMinimum и exclusiveMaximum были логическими флагами при minimum/maximum; начиная с draft-06 это самостоятельные числа.

Логические значения и null

Тип boolean допускает только true и false — не строки "true" и не числа 0/1. Тип null допускает только значение null: его часто объединяют с другим типом, чтобы разрешить «пустое» значение.

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