关于JSON Schema 校验
JSON Schema 是描述 JSON 数据结构的标准化规范(草案 4、6、7、2019-09、2020-12 等多个版本),通过 Schema 定义 JSON 字段的类型、必填、格式、范围、嵌套结构等约束,用于验证 JSON 数据是否符合预期格式。JSON Schema 广泛用于 API 接口校验、配置文件验证、表单数据校验、数据迁移质量保障等场景。
在前后端协作中,JSON Schema 是接口契约的事实标准:后端通过 Schema 声明接口返回的数据结构,前端通过 Schema 校验接口返回的数据是否符合预期,避免因数据格式不一致导致的运行时错误。在 OpenAPI、AsyncAPI 等接口规范中,JSON Schema 是描述数据结构的核心语言。
本 JSON Schema 校验工具基于 Ajv 库实现,支持多个 Schema 版本,校验失败时返回具体的错误路径与原因,便于快速定位问题。所有校验在浏览器本地完成,JSON 数据不会上传到任何服务器。
核心特性
多版本支持
支持 JSON Schema 草案 4、6、7、2019-09、2020-12 多个版本,按需切换。
详细错误报告
校验失败时返回每个错误的路径(如 /data/0/name)、错误类型与原因,便于快速定位。
实时校验
粘贴 JSON 数据与 Schema 后自动校验,无需点击按钮,边编辑边验证。
Schema 美化
自动格式化 Schema 与 JSON 数据,便于阅读与对比。
本地处理零上传
所有校验在浏览器内完成,包含敏感数据的 JSON 可放心处理。
使用场景
API 接口契约验证
开发 API 时定义 JSON Schema 作为接口契约,使用本工具校验接口返回的数据是否符合 Schema。
配置文件校验
为配置文件编写 JSON Schema,校验配置文件是否符合规范,避免运行时错误。
表单数据校验
前端表单提交前使用 JSON Schema 校验数据格式,提前发现用户输入错误。
数据迁移质量保障
数据迁移前后使用 JSON Schema 校验数据完整性,确保迁移过程无数据丢失或格式异常。
常见问题
JSON Schema 与 TypeScript 类型有什么区别?
TypeScript 类型仅在编译期检查,运行时不生效;JSON Schema 是运行时可执行的校验规则,可以在 API 边界、配置加载等运行时场景校验数据。两者互补使用,不能完全替代。
支持哪些校验关键字?
支持 type、required、properties、items、enum、format、minimum、maximum、pattern、additionalProperties 等所有标准关键字。具体支持的版本取决于选择的 Schema 版本。
校验失败时如何定位错误?
本工具会返回每个错误的实例路径(如 /data/0/name 表示 data 数组第 0 个元素的 name 字段)、Schema 路径与错误原因,根据路径可以快速定位到具体的 JSON 字段。
能自动生成 Schema 吗?
当前版本不支持自动生成 Schema。建议根据 JSON 数据手动编写 Schema,或使用专门的 Schema 生成工具先生成基础结构,再手动调整约束。