JSON Schema 验证器
用 Ajv 按 JSON Schema(draft 2020-12、2019-09 或 07)验证 JSON 数据并检查 format,每个错误都显示实例路径。在浏览器中运行。
完全在浏览器中运行,您的数据不会被上传。
相关工具
查看全部什么是 JSON Schema 验证?
JSON Schema 验证器按 JSON Schema 检查 JSON 数据,并列出所有违规项——缺少必需属性、类型错误、数字超出范围、格式无效、多余属性——每一项都附带出错值的 JSON Pointer。支持 2020-12、2019-09 和 07 三个草案。
如何使用 JSON Schema 验证
- 把数据粘贴到 JSON 数据,把 schema 粘贴到 JSON Schema 定义(或在各自处点击 加载示例)。
- 保持 Schema 版本 为自动识别,或选择某个草案。
- 查看结果:成功提示,或带实例路径的错误列表。
- 修正数据(或 schema),结果会自动更新。
示例
Data: {"age":-1,"email":"x"}
Schema: {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["name"],"properties":{"age":{"type":"integer","minimum":0},"email":{"type":"string","format":"email"}}} Validation errors: 3 (draft 2020-12) (root) Missing required property "name" /age Must be ≥ 0 /email Must be a valid "email"
何时使用 JSON Schema 验证
适合测试 API 请求体、配置文件或你正在编写的 schema。不支持 Draft-04 及更早的 schema(Ajv 8 已移除)。不会下载远程 $ref URL;schema 必须自包含(指向 #/$defs/... 的本地 $ref 可用)。
JSON Schema 验证 的工作原理
验证使用 Ajv 8(一个被广泛使用的 JSON Schema 实现),启用 allErrors 以报告每一处违规,并使用 ajv-formats 处理 email、date-time、uri 和 uuid 等 format 关键字。草案根据 schema 的 $schema URL 识别(2020-12、2019-09,否则为 draft-07),也可以手动选择。严格模式已关闭,因此 example 这样的未知关键字会被忽略而不是被拒绝。常见的错误类型会显示翻译后的消息,其他则使用 Ajv 的消息。
常见用例
- 按由 OpenAPI 派生的 schema 检查 API 请求体
- 排查配置文件为什么被拒绝
- 开发并测试新的 JSON Schema
- 验证测试夹具
安全提示
所有处理都在你的浏览器本地完成,粘贴的内容不会被上传。
常见问题
支持哪些草案?
2020-12、2019-09 和 draft-07(draft-06 的 schema 通常可按 draft-07 使用)。不支持 Draft-04。
会检查 email 这样的格式吗?
会,通过 ajv-formats 实现。
能加载远程的 $ref schema 吗?
不能,只支持同一个 schema 内部的引用。
为什么一次显示多个错误?
所有错误都会被收集起来,方便你一次性全部修复。