开发工具
JSON Schema 校验在线工具
JSON Schema 校验工具使用 Ajv 验证 JSON 实例的类型、必填字段、范围、格式和组合约束,支持 Draft 2020-12 与 draft-07。
功能介绍
JSON 语法正确只代表文本能够被解析,并不代表字段结构符合接口或配置约定。JSON Schema 可以声明对象需要哪些字段、字段允许什么类型、字符串和数字范围、数组元素结构以及多个条件如何组合。本工具使用 Ajv 在浏览器中编译 Schema,并把校验错误整理成实例路径、关键字、中文说明和 Schema 路径。
默认使用当前正式版本 Draft 2020-12,支持 prefixItems、unevaluatedProperties 等现代关键字;同时提供 draft-07 兼容模式,便于检查已有接口文档和项目配置。没有现成 Schema 时,可以根据当前 JSON 实例生成包含类型、properties、required 和 additionalProperties 的基础版本,再按业务要求补充约束。
使用方法
- 选择 Schema 草案,新项目通常使用 Draft 2020-12,旧项目根据 $schema 声明选择 draft-07;
- 分别粘贴需要验证的 JSON 实例和 Schema,也可以载入一组包含类型、格式和必填字段的示例;
- 点击开始校验,通过时显示明确成功状态,失败时按实例路径查看每一项约束错误;
- 复制错误清单用于联调记录,或点击从实例生成 Schema 得到基础结构后继续人工补充业务规则。
注意事项
- 远程 $ref 默认禁用,只允许 # 开头的文档内引用;输入内容与错误结果不会上传服务器。
- 从实例生成的 Schema 只反映当前样例可观察到的类型,无法自动推断可选字段、业务枚举和完整数组联合类型,使用前必须人工复核。
- 实例和 Schema 各限制 300 KB,错误最多展示 100 项,避免异常输入造成长时间编译或页面渲染阻塞。
常见使用场景
- 验证接口请求或响应是否符合约定
- 检查配置文件必填字段和数据类型
- 调试 oneOf、数组 tuple 与本地 $ref
- 根据 JSON 样例生成基础 Schema 后继续完善
常见问题
Draft 2020-12 和 draft-07 应该选哪个?
新项目优先选择 2020-12;已有 Schema 若声明 draft-07,则切换到兼容模式。两种草案的数组 tuple 和部分关键字语义不同。
支持远程 $ref 吗?
不支持。当前只允许 # 开头的同文档引用,避免浏览器向未知地址请求 Schema,以及由重定向、超时和内容大小带来的风险。
format 会进行实际校验吗?
常见的 email、uri、date-time 等格式通过 ajv-formats 作为断言校验;自定义格式和所有可能的扩展格式不在当前支持范围内。