实用工具
输入
结果
结果会显示在这里。模型的结构化输出、webhook 请求体或者配置文件被拒收时,真正有用的是一张清单:哪些路径不合格,各自违反了哪条规则。这个校验器跑的是 Ajv——大多数 JavaScript 工具链背后的 JSON Schema 实现——并开启了 allErrors,所以有五处问题的文档会显示五行:出错值的 JSON 指针、错误信息,以及 Schema 里触发这条错误的规则路径。Schema 放进 Schema 框,要校验的文档放进输入框。
它是怎么工作的
- 校验所用的规范版本跟随 Schema 自己的 $schema:2020-12 和 2019-09 用 Ajv 对应的类,draft-07 或没有声明的用默认类。
- 加载了 ajv-formats,所以 email、date-time、uri、uuid 这些 format 会真正被检查,而不是被悄悄忽略。
- 关闭了 Ajv 的 strict 选项,examples 之类的注解或厂商自定义关键字不会中断校验;如果 Schema 本身写错了,会明确报出来。
你的数据去了哪里
哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。
本工具免费且无需登录,运行结果只存在于你当前的页面里,不会被保存到任何地方。
它要花多少
本工具完全免费,不需要登录,也不消耗积分。
常见问题
- 为什么我的 draft-04 Schema 被拒绝?
- draft-04 里 exclusiveMinimum 和 exclusiveMaximum 是布尔值,后来的版本改成了数字,用新版本去跑旧 Schema 可能会放过本该失败的数据。与其猜,不如请你把 $schema 改掉。draft-06 的 Schema 会按 draft-07 校验,因为 draft-07 只是在它基础上加了关键字。
- 每行 at 后面那段路径是什么意思?
- 那是失败规则在 Schema 里的路径,比如 #/properties/items/items/properties/price/minimum。每行开头的路径指向你的数据,这第二个路径指向 Schema。当你发现错的其实是 Schema 而不是数据时,这个路径能直接带你找到要改的那条规则。
- 会去网上下载 $ref 引用的 Schema 吗?
- 不会。同一份 Schema 内部的引用(#/$defs/… 或 #/definitions/…)可以正常解析,但远程的 $ref 地址不会被下载,依赖它的 Schema 会编译失败,并在报错里指出是哪个引用。想离线校验,就把被引用的定义粘进 $defs 里。
背后的开源项目
本工具运行在 ajv-validator/ajv 之上,以 MIT 许可发布。如果你需要在自己的程序里实现同样的能力,直接用这个库。
ajv-validator/ajv也常被称作
- json schema校验
- json schema验证在线
- ajv在线校验
- json格式校验工具
- json schema 2020-12