JSON Schema定义中如何同时设置minLength并允许字段为null
JSON Schema 社会安全号码字段兼容null值解决方案
修改后的配置如下,无需删除minLength约束即可同时支持合法SSN字符串和null值:
"socialSecurityField":{ "type": ["string", "null"], "minLength": 9, "maxLength": 11, "pattern": "^\\d{3}([ -]?)\\d{2}\\1?\\d{4}$" }
实现原理
- JSON Schema 的类型校验支持传入数组,设置
"type": ["string", "null"]即表示该字段允许取值为字符串或null两种类型。 - 针对字符串的专属校验规则(
minLength/maxLength/pattern)仅会在字段值为字符串类型时触发校验,当值为null时会自动跳过上述规则,不会触发校验失败,因此原有字符串校验逻辑完全保留。
补充说明
原配置中的正则表达式存在多余闭合括号的语法问题,修正后的正则额外增加了分隔符一致性校验:仅允许无分隔符、统一短横线分隔、统一空格分隔三种合法SSN格式,避免出现前后分隔符不一致的非法值。
内容的提问来源于stack exchange,提问作者TheWizardOfTN
相关产品推荐
相关产品推荐

