------------ Josn模式-------------
{
"type": "object",
"properties": {
"street_address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"street_address"
],
"additionalProperties": false
}
在上面的架构中,我想在城市和州之间创建一个选择。可以在json中输入城市或州名。所以下面的json将是无效的
{
"street_address": "abc",
"city": "anv",
"state": "opi"
}
低于1应该是有效的
{
"street_address": "abc"
}
或者
{
"street_address": "abc",
"city": "anv"
}
或者
{
"street_address": "abc",
"state": "opi"
}
可以请一个人帮我修改以上架构以实现目标。
最佳答案
当只有一个替代项应包含时,使用“oneOf”,而至少应具有一种替代项时,请使用“anyOf”。
您无需在oneOf中重复通用属性。实现目标的最短方法是:
{
"type" : "object",
"properties" : {
"street_address" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"state" : {
"type" : "string"
}
},
"oneOf" : [{
"required" : ["city"]
}, {
"required" : ["state"]
}
],
"required" : [
"street_address"
],
"additionalProperties" : false
}