我想写一个模式规范,它允许属性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": { ... }
}