如何在 required anyOf jsonSchema 中使用 anyof?
How to use anyof inside required anyOf jsonSchema?
在对象x里面,它应该有anyOf a,b,也应该有anyOf c,d。
这是我当前有效的代码,但它似乎不是正确的方法。
{
"type": "object",
"properties": {
"x": {
"type": "object",
"anyOf": [
{
"required": ["a","c"]
},
{
"required": ["a","d"]
},
{
"required": ["b","c"]
},
{
"required": ["b","d"]
}
],
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"c": {
"type": "string"
},
"d": {
"type": "string"
}
}
}
}
}
如何以更简单的方式做到这一点?
即,对象 x 应该有 (a 或 b) 和 (c 或 d)。
Object x should have (a or b) and (c or d)
如果这正是您所需要的,那么您可以使用 allOf
关键字结合 anyOf
来表达。只需将 allOf
视为 AND,将 anyOf
视为 OR:
...
"allOf": [
{
"anyOf": [
{ "required": ["a"] },
{ "required": ["b"] }
]
},
{
"anyOf": [
{ "required": ["c"] },
{ "required": ["d"] }
]
}
]
在对象x里面,它应该有anyOf a,b,也应该有anyOf c,d。 这是我当前有效的代码,但它似乎不是正确的方法。
{
"type": "object",
"properties": {
"x": {
"type": "object",
"anyOf": [
{
"required": ["a","c"]
},
{
"required": ["a","d"]
},
{
"required": ["b","c"]
},
{
"required": ["b","d"]
}
],
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"c": {
"type": "string"
},
"d": {
"type": "string"
}
}
}
}
}
如何以更简单的方式做到这一点? 即,对象 x 应该有 (a 或 b) 和 (c 或 d)。
Object x should have (a or b) and (c or d)
如果这正是您所需要的,那么您可以使用 allOf
关键字结合 anyOf
来表达。只需将 allOf
视为 AND,将 anyOf
视为 OR:
...
"allOf": [
{
"anyOf": [
{ "required": ["a"] },
{ "required": ["b"] }
]
},
{
"anyOf": [
{ "required": ["c"] },
{ "required": ["d"] }
]
}
]