У меня есть запрос JSON, который я пытаюсь проверить по схеме JSON. Мне интересно, возможно ли потребовать, чтобы поле в подсхеме основывалось на значении поля в той же подсхеме? Я пробовал anyOf, OneOf и IF, Then, Else безрезультатно. anyOf возвращает ошибку «соответствует только 1 подсхема из 2», а OneOf возвращает «соответствуют 2 подсхемы вместо одной».
{
"field1":"aaa",
"field2":"bbb"
"field3":{
"isTrue":true,
"inner1":"1",
"inner2":"1"
}
}
Итак, для приведенного выше Json могу ли я требовать только поля inner1 и inner2, если поле isTrue истинно?
"field3": {
"type": "object",
"properties": {
"isTrue": {
"type":
"boolean"
},
"inner1": {
"type":
"integer"
},
"inner2": {
"type":
"string"
}
},
"anyOf": [
{
"properties": {
"isTrue": {
"const": "true"
}
},
"required": [
"inner1",
"inner2"
]
},
{
"properties": {
"isTrue": {
"const": "false"
}
},
"required": [
"isTrue"
]
}
]
}
Выше приведена моя оскорбительная схема Json.