Ответ 1
Из журналов изменений:
Новые ключевые слова
- anyOf (сопоставьте хотя бы одну схему в массиве схемы),
- allOf (соответствует всем схемам в массиве схемы),
- oneOf (соответствует только одной схеме в массиве схемы),
- нет (не соответствуют схеме),
- multipleOf (заменяет divisibleBy),
- minProperties и maxProperties (минимальное и максимальное количество членов в экземпляре объекта),
- (стандартизованный контейнер для встроенных подсхем).
Удалено:
- Disallow
- расширяет
- divisbleBy
Изменено в функциональности:
Тип
- Когда значение представляет собой массив, схемы больше не разрешены как элементы. Кроме того, массив должен иметь хотя бы один элемент.
До
{
"type": [ "string", { "other": "schema" } ]
}
Теперь
{
"anyOf": [
{ "type": "string" },
{ "other": "schema" }
]
}
Обязательно
- Раньше это был атрибут подсхемы в свойствах. Теперь это ключевое слово первого уровня, играющее ту же роль, и в качестве аргумента имеет строковый массив.
До
{
"properties": {
"p": {
"type": "string",
"required": true
},
"q": {
"type": "string",
"required": true
}
}
}
Теперь
{
"properties": {
"p": { "type": "string" },
"q": { "type": "string" }
},
"required": [ "p", "q" ]
}
Зависимости
- Одна строка в зависимостях свойств больше не разрешена, разрешены только массивы
До
{
"dependencies": { "a": "b" }
}
Теперь
{
"dependencies": { "a": [ "b" ] }
}