У меня есть следующие json:
{
"firstName": "Mac",
"countryOfBirth": "England",
"cityOfBirth": "England",
"nested": {
"testValue": "someValue"
}
}
Я хочу включить в схему следующее условие:
if countryOfBirth = "England" then nested.testValue should be present
Я пробовал следовать определению схемы, но оно не работает вообще. Требуемое условие пытается найти элемент на том же уровне countryBirth, а не на вложенном уровне. Есть идеи, как этого достичь?
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"countryOfBirth": {
"type": "string"
},
"cityOfBirth": {
"type": "string"
},
"nested": {
"type": "object",
"properties": {
"testValue": {
"$id": "properties/nested/properties/testValue",
"type": "string"
}
}
}
},
"required": ["countryOfBirth"],
"if": {"properties": {"countryOfBirth": {"pattern": "^England$"}}},
"then": {"required": ["cityOfBirth","#/properties/nested/properties/testValue"]
}
}