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

Версии и диалекты

JSON Schema развивается: за годы вышло несколько версий спецификации (их называют «черновиками», drafts). Версию схемы указывают в $schema.

$schema

$schema — URI метасхемы: схемы, которой должна соответствовать сама ваша схема. По нему валидатор понимает, по каким правилам проверять. Указывайте $schema в корне каждой схемы.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "string"
}
ВерсияURI $schemaГде встречается
2020-12https://json-schema.org/draft/2020-12/schemaАктуальная версия; OpenAPI 3.1
2019-09https://json-schema.org/draft/2019-09/schemaПереходная версия
draft-07http://json-schema.org/draft-07/schema#Очень распространена; многие библиотеки и конфигурации
draft-06http://json-schema.org/draft-06/schema#Устаревшая
draft-04http://json-schema.org/draft-04/schema#Устаревшая; близкие к ней схемы — в OpenAPI 3.0

Редактор «Помощника SA» проверяет схемы 2020-12 и 2019-09 по правилам 2020-12, остальные — по правилам draft-07.

Главные отличия 2020-12 от draft-07

draft-072020-12
definitions$defs (старое имя работает как обычное свойство, на него можно сослаться)
items: [...] + additionalItemsprefixItems + items
dependenciesdependentRequired и dependentSchemas
Ключевые слова рядом с $ref игнорируютсяПрименяются вместе с $ref
НетunevaluatedProperties, unevaluatedItems, $anchor, $dynamicRef, minContains, maxContains

Словари

Начиная с 2019-09 ключевые слова сгруппированы в словари (vocabularies): ядро ($id, $ref, $defs), применители (allOf, properties, items), проверки (type, minimum), аннотации метаданных, форматы, содержимое. Метасхема перечисляет словари в $vocabulary: так можно создать свой диалект — например, добавить собственные ключевые слова или отключить ненужные. Для прикладных задач хватает стандартной метасхемы.

Неизвестные ключевые слова

Ключевые слова, которых нет в спецификации, валидатор игнорирует — их можно использовать как свои аннотации. Чтобы не пересечься с будущими версиями стандарта, давайте им префикс: x-internal, x-ui-widget.

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