0
我想表达的是,所有或不包含可选属性。例如如何在JSON模式中表示多个可选属性的全部或无?
{
}
和
{
"a" : 1,
"b" : 2
}
既要有效,但
{
"a" : 1
}
和
{
"b" : 2
}
应该既是无效。
我想表达的是,所有或不包含可选属性。例如如何在JSON模式中表示多个可选属性的全部或无?
{
}
和
{
"a" : 1,
"b" : 2
}
既要有效,但
{
"a" : 1
}
和
{
"b" : 2
}
应该既是无效。
更简单的方法:
{
"properties:" {
"a" : {"type" : "integer"},
"b" : {"type" : "integer"}
},
"dependencies" : {
"a" : ["b"],
"b" : ["a"]
}
}
这里满足要求的模式:
{
"type": "object",
"properties": {
"a": {
"type": "integer"
},
"b": {
"type": "integer"
}
},
"oneOf": [{
"required": ["a", "b"]
}, {
"not": {
"anyOf": [{
"required": ["a"]
}, {
"required": ["b"]
}]
}
}],
"additionalProperties": false
}
另一种方法是在JSON也表达的属性属于在一起像
{
"parent": {
"a": 1,
"b": 2
}
}
其中母体存在或不和如果存在,则始终有a和b:
{
"type": "object",
"properties": {
"parent": {
"type": "object",
"properties": {
"a": {
"type": "integer"
},
"b": {
"type": "integer"
}
},
"required": ["a", "b"],
"additionalProperties": false
}
},
"additionalProperties": false
}
如果你已经有了答案,你为什么要发布它? – Pedro