JSON Schema数值比较:如何判断number类型属性years是否小于3
JSON Schema数值范围判断实现方案
先修正已有无效配置
你当前给number类型的years字段配置pattern是无效约束:pattern关键字仅对string类型生效,数值类型不会识别该规则。如果你要限定years只能取0~10的整数,建议调整为如下标准写法,比正则校验更可靠:
"years": { "type": "integer", "minimum": 0, "maximum": 10 }
小于3的条件校验正确实现
你尝试的枚举写法仅对整数值场景生效,且扩展性差,JSON Schema提供了专门的数值边界校验关键字,通用实现如下:
"if": { "properties": { "years": { "exclusiveMaximum": 3 } }, // 补充required约束,避免years字段不存在时也误触发条件 "required": ["years"] }
如果你的业务确实只允许years取0、1、2三个值,也可以用enum关键字实现,比你写的anyOf语法更规范:
"if": { "properties": { "years": { "enum": [0, 1, 2] } }, "required": ["years"] }
内容的提问来源于stack exchange,提问作者chitresh sirohi
相关产品推荐
相关产品推荐

