Я хочу проверить наличие ключа json, только если другой ключ существует и равен некоторому значению.
Например, на следующем json я хочу присутствие "baz", только если "ключ" равен "foo ":
{
"id":"myid",
"key":"foo",
"baz":"baz!"
}
Я могу проверить это, просто используя следующую схему json (черновик 4):
{
"properties":
{
"key":{
"type": "string",
"enum": ["foo", "bar"]
},
"baz":{
"type": "string"
},
"quuz":{
"type": "string"
}
},
"anyOf":
[
{
"properties":{
"key":{ "enum": ["foo"] }
},
"required": ["baz"]
},
{
"properties":{
"key":{ "enum": ["bar"] }
},
"required": ["quuz"]
}
]
}
Также допустим следующий json:
{
"id":"myid",
"key":"bar",
"quuz":"quuz!"
}
Это недопустимо ("key" = "bar" требует "quuz"):
{
"id":"myid",
"key":"bar",
"baz":"baz!"
}
Пока все хорошо.Теперь: мне нужно, чтобы json был действительным, даже если ключ «key» отсутствует:
{
"id":"myid"
}
Это просто не работает с вышеуказанной схемой, потому что ключевое слово «anyOf» устанавливает поля «required».
Возможно ли получить поведение "anyOf или отсутствует ключ" ?.Draf
Любая помощь?