Я ищу способ объявить объекты, определенные в списке перечисления.
Вот что я хочу проверить:
{
"object1": {
"subobject1": {
"value": 123
},
"subobject2": {
"value": 456
}
},
"object2": {
"subobject3": {
"value": 789
}
},
"object3": {
"subobject4": {
"value": 123
}
},
"object4": {
"subobject5": {
"value": 234
}
}
}
Вот моя схема, которую я хочуиспользовать для проверки:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"definitions": {
"list1": {
"enum": [
"object1",
"object2",
"object3",
"object4"
],
"list2": {
"enum": [
"subobject1",
"subobject2",
"subobject3",
"subobject4",
"subobject5"
]
}
}
},
"properties": {
"type": {
"anyOf": [
{
"$ref": "#/definitions/list1"
}
]
}
},
"additionalProperties": false
}
Но я получаю следующую ошибку:
Свойство 'object1' не определено, и схема не допускает дополнительных свойств.
Я действительно хочу быть очень строгим и иметь возможность объявить только тот, который указан в перечислении, потому что я знаю, что если я удалю «AdditionalProperties»: false, я могу добавить любую нужную мне информацию, и она будет работать.