1 回答
TA贡献2080条经验 获得超4个赞
正如评论中指出的那样,这可能已被多次询问。
下面的技巧、模式和 json 示例使用逻辑运算符。我不能说它是否更好,它只是将“anyOf”中的任何内容分组(以及您可以在需要时添加的邮政编码的要求,并且您可以根据需要构建对完整“属性”内部的引用等) .). 或者您可以将其作为严格的异或“oneOf”(也如评论中所述)并确保每个案例的地址->属性定义都按照您的需要进行调整。
请阅读(链接到我自己过去的回答并不优雅,但它可能会引导您进一步阅读):JSON Schema conditional: require and not require
您的问题的简化架构和示例(据我了解):
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties" : {
"address": {
"type" : "object",
"anyOf" : [
{
"properties" : {
"house_number" : {
"type":"string",
"maxLength": 4
},
},
"required":["house_number"]
},
{
properties : {
"house_name" : {
"type" : "string",
"maxLength" : 50
}
},
"required":["house_name"]
}
]
}
},
required: ["address"],
examples : [
{
baddress: {
}
},
{
address: {
"house_number":"1234",
"house_name" : null
}
},
{
address: {
"house_number":null,
"house_name" : null
}
},
{
address: {
"house_number":null,
"house_name" : "some name"
}
},
{
address: {
"house_number": "12345",
"house_name" : "some afafafasagagagffgfsagragsgasgasssssssfdgsdfgsdfgdsgsdfgsdgsdfgdfsgsdfgs name"
}
},
]
}
添加回答
举报