Json A 或 B 的架构
Json schema for either A or B
我想编写一个架构规范,允许 属性 A 或 B。例如,
{
"foo" : "bar",
"A" : "something"
}
{
"foo" : "bar",
"B" : "something else"
}
应该是合法的,但是
{
"foo" : "bar",
"A" : "something",
"B" : "something else"
}
应该是非法的。 2020-12/schema
的正确方法是什么
oneOf
运算符可以做到这一点。您可以将 属性 定义保留在 oneOf 之外,这样您就不必重复自己:
"type": "object",
"oneOf": [
{ "required": [ "A" ] },
{ "required": [ "B" ] }
],
"properties": {
"A": { ... },
"B": { ... },
"foo": { ... }
}
我想编写一个架构规范,允许 属性 A 或 B。例如,
{
"foo" : "bar",
"A" : "something"
}
{
"foo" : "bar",
"B" : "something else"
}
应该是合法的,但是
{
"foo" : "bar",
"A" : "something",
"B" : "something else"
}
应该是非法的。 2020-12/schema
oneOf
运算符可以做到这一点。您可以将 属性 定义保留在 oneOf 之外,这样您就不必重复自己:
"type": "object",
"oneOf": [
{ "required": [ "A" ] },
{ "required": [ "B" ] }
],
"properties": {
"A": { ... },
"B": { ... },
"foo": { ... }
}