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

Форматы и данные не в JSON

format

format задаёт семантический формат строки: дата, email, UUID. По стандарту 2020-12 format — аннотация: валидатор не обязан его проверять. На практике большинство инструментов проверяет форматы, если это включено (редактор «Помощника SA» проверяет).

ФорматПримерЗначение
date-time2026-09-30T12:00:00+03:00Дата и время по RFC 3339
date2026-09-30Дата
time12:00:00+03:00Время с часовым поясом
durationP3DT4HДлительность ISO 8601
email, idn-emailivan@example.comАдрес электронной почты
hostname, idn-hostnamehelper-sa.ruИмя хоста
ipv4, ipv6192.168.0.1IP-адрес
uri, uri-reference, irihttps://example.com/a?b=1URI и относительные ссылки
uuid3fa85f64-5717-4562-b3fc-2c963f66afa6UUID
regex^\d+$Регулярное выражение
json-pointer/items/0/nameJSON Pointer
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "createdAt": { "type": "string", "format": "date-time" },
    "site": { "type": "string", "format": "uri" }
  }
}
{ "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "createdAt": "2026-09-30T12:00:00+03:00", "site": "https://helper-sa.ru" }
{ "createdAt": "30.09.2026" }

Если формат важен для бизнеса, дублируйте его шаблоном pattern или используйте строгий валидатор — тогда проверка не зависит от настроек инструмента.

Данные не в JSON

Иногда в строке передают данные другого формата: картинку в Base64, вложенный JSON-документ, XML. Для их описания есть три аннотации:

  • contentEncoding — как закодированы двоичные данные: base64, base16, base32;
  • contentMediaType — тип содержимого: image/png, application/json, text/html;
  • contentSchema — схема для содержимого, если оно JSON.
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "avatar": {
      "type": "string",
      "contentEncoding": "base64",
      "contentMediaType": "image/png"
    },
    "payload": {
      "type": "string",
      "contentMediaType": "application/json",
      "contentSchema": {
        "type": "object",
        "required": ["event"]
      }
    }
  }
}

Эти ключевые слова — аннотации: валидаторы обычно не декодируют содержимое, а приложения используют их, чтобы правильно обработать строку.

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