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