我需要根据http://json-schema.org/定义的规范编写JSON Schema。但我正在努力争取必要/强制性的财产验证。下面是我写的JSON模式,其中所有3个属性都是必需的,但在我的情况下,任何一个属性都必须是。怎么做?。
{
"id": "http://example.com/searchShops-schema#",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "searchShops Service",
"description": "",
"type": "object",
"properties": {
"city":{
"type": "string"
},
"address":{
"type": "string"
},
"zipCode":{
"type": "integer"
}
},
"required": ["city", "address", "zipCode"]
}
答案 0 :(得分:0)
如果您的目标是告诉“我希望至少有一名成员存在”,请使用minProperties
:
{
"type": "object",
"etc": "etc",
"minProperties": 1
}
另请注意,如果您还希望在此成员或该成员出现时存在其他约束,则可以使用"dependencies"
。
答案 1 :(得分:0)
{
...
"anyOf": [
{ "required": ["city"] },
{ "required": ["address"] },
{ "required": ["zipcode"] },
]
}
或者使用" oneOf"如果只有一个属性应该存在