不使用oneOf/anyOf实现JSON Schema支持日期、空串及null校验
你只需要修改type字段的取值,允许同时匹配字符串和null类型即可。JSON Schema 规范中,当字段取值为null时,针对string类型设计的pattern校验规则会自动跳过,不会触发校验失败,修改后的完整规则如下:
"my_date": { "type": ["string", "null"], "pattern": "^([0-9]{4}-[0-9]{2}-[0-9]{2}|)$", "default": null, "example": "2021-09-20" }
校验逻辑说明
- 当
my_date取值为null:匹配type中的null类型,校验直接通过 - 当
my_date取值为字符串:触发pattern规则校验,仅允许空字符串或YYYY-MM-DD格式的合法日期字符串通过 - 其他类型取值、不符合格式要求的字符串都会被拦截,不会出现任意非合规字符串放行的问题
内容的提问来源于stack exchange,提问作者Mich Talebzadeh
相关产品推荐
相关产品推荐

