【发布时间】:2021-01-25 05:23:10
【问题描述】:
我想使用 JSON 模式验证 JSON 文件,应该需要几个“属性”,具体取决于其他属性的值。
示例
- 具有“A”、“B”、“C”和“D”属性
- 如果“A”的值为“foo”,则需要 C
- 如果“B”的值为“foo”,则需要 D
- 如果“A”和“B”都具有值“foo”,则 C 和 D 都是必需的
- 否则,什么都不需要
我在这里看到了一个非常有用的答案:https://stackoverflow.com/a/38781027/5201771 --> 在那里,作者针对单个属性的情况解决了这个问题(例如,只有“A”的值是“foo”,所以需要"C")。
但是,我目前不知道如何将该答案扩展到我的案例,其中几个属性决定了结果。
示例文件
为了说明,我提供了一些应该通过或未通过验证的文件:
应该通过:
{
"A": "bar"
"B": "baz"
}
{
"A": "foo"
"C": "some value"
}
{
"A": "bar"
"B": "foo"
"D": "some value"
}
应该失败:
{
"A": "foo"
"B": "foo"
"D": "some value"
}
【问题讨论】:
标签: jsonschema