是否存在JSON Schema校验工具可返回所有缺失的嵌套必填字段?
问题描述
常规JSON Schema校验复杂JSON对象时,若嵌套子必填字段存在但父级必填字段缺失,校验器通常仅提示父字段缺失。例如使用某在线校验工具校验空JSON对象{}时,仅得到「对象缺少必填属性:name」的错误,请问是否有校验器能返回包括firstName、secondName在内的所有缺失必填字段的错误信息?
解决方案
当然有,部分JSON Schema校验器支持通过配置开启全层级错误输出,能递归检测所有嵌套的必填字段:
- Ajv(Another JSON Schema Validator):这是生态中功能灵活的主流校验器,只需开启
allErrors: true配置,就能返回所有层级缺失的必填字段错误,包括嵌套的叶节点项。
示例代码(JavaScript环境):const Ajv = require('ajv'); const ajv = new Ajv({ allErrors: true }); // 开启全错误输出 const validate = ajv.compile(你的JSON Schema); const isValid = validate({}); if (!isValid) { console.log(validate.errors); // 输出所有缺失的必填字段错误,含firstName、secondName } - Zod:虽然它并非严格遵循JSON Schema规范,但支持嵌套结构的详尽校验,默认会返回所有层级的缺失字段错误。如果可以接受使用现代类型校验库,它的错误提示直观且全面。
部分在线校验工具默认仅返回顶层错误是为了避免信息过载,但本地部署的校验器大多支持开启全错误输出模式。
内容的提问来源于stack exchange,提问作者user12409476
相关产品推荐
相关产品推荐

