我有下面显示的json。我想让它针对必须具有zoo_unique_code的Zoo列表工作。但是可以有动物或鸟类,或者两者都有,也可以没有。但是我想用子模式验证它是否具有动物或鸟类,例如bird / animal_id。子模式似乎不起作用。
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"animal_id": {
"type": "string",
"maxLength": 24
},
"bird_id": {
"type": "string",
"maxLength": 50
},
"zoo_bird_and_animal": {
"type": "object",
"anyOf": [{
"properties": {
"zoo_bird": {
"type": "object",
"required": [
"zoo_bird_id"
],
"properties": {
"zoo_bird_id": {
"$ref": "#/definitions/bird_id"
}
}
}
}
}, {
"properties": {
"zoo_animal": {
"type": "object",
"required": [
"zoo_animal_id"
],
"properties": {
"zoo_animal_id": {
"$ref": "#/definitions/animal_id"
}
}
}
}
}
]
}
},
"properties": {
"zoo_list": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"zoo_unique_code"
],
"minProperties": 1,
"properties": {
"zoo_unique_code": {
"type": "string",
"enum": [
"NEWYORKZOO",
"PARISZOO"
]
}
},
"$ref": "#/definitions/zoo_bird_and_animal"
}
}
}
}
并使用]进行测试>
{ "zoo_list": [ { "zoo_unique_code": "NEWYORKCODE", "zoo_bird": { "zoo_bird_id": "newid" } } ] }
任何建议将不胜感激。
我有下面显示的json。我想让它针对必须具有zoo_unique_code的Zoo列表工作。但是可以有动物或鸟类,或者两者都有,也可以没有。但是我想用sub ...
就我能解释您的架构而言,似乎您想在最后使用组合架构,而不是在同一项目中使用ref
。