【发布时间】:2020-09-28 01:15:43
【问题描述】:
更新:添加要求
我正在尝试实现一个像这样工作的 JSON 模式……
给定以下参数:foo、bar、baz、one 和 two
以下其中一项应适用
- 不存在任何参数
- 如果存在一个或多个参数,则
- 如果存在
foo- 那么one和two不需要 - else 如果存在除
foo之外的任何参数 - 那么one和two是必需的
- 如果存在
当然,如果提供的 任何 参数在架构中不,则应引发适当的错误。
经过大量的摸索,inspiration,这是我的尝试,它并没有真正奏效
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" },
"baz": { "type": "string" }
},
"oneOf": [
{
"not": {
"properties": { "foo": { "const": "" } },
"required": []
}
},
{ "required": [ "one", "two" ] }
]
}
我也尝试了以下方法,但没有成功
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" },
"baz": { "type": "string" }
},
"dependencies": {
"not": {
"foo": { "required": ["one", "two"] }
}
}
}
【问题讨论】:
-
foo和one/two是否互斥? -
如果没有
bar或baz,是否禁止one和two,或者只是可选的?
标签: jsonschema