如何在JSON Schema的If-else规则中指定OR条件
语法调整方案
你只需要修改if条件块的逻辑规则即可:
- 原有AND逻辑的写法:
{ "if": { "properties": { "LandMark1": { "const": "USA" }, "FlatNo": { "const": "Excalibur" } }, "required": ["LandMark1", "FlatNo"] }, "then": { "required": ["LandMark2"] } }
上述写法中,properties下的2个字段校验规则默认是AND关系,只有两个条件同时满足才触发then的规则。
- 改为OR逻辑后的写法:
{ "if": { "anyOf": [ { "properties": { "LandMark1": { "const": "USA" } }, "required": ["LandMark1"] }, { "properties": { "FlatNo": { "const": "Excalibur" } }, "required": ["FlatNo"] } ] }, "then": { "required": ["LandMark2"] } }
核心调整说明:
- JSON Schema中使用
anyOf关键字实现逻辑或,anyOf数组内所有规则只要任意一个匹配成功,整个if判断就会通过 then块的必填规则不需要做任何修改,保持原有逻辑即可
内容的提问来源于stack exchange,提问作者ripon
相关产品推荐
相关产品推荐

