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 验证

  1. 把数据粘贴到 JSON 数据,把 schema 粘贴到 JSON Schema 定义(或在各自处点击 加载示例)。
  2. 保持 Schema 版本 为自动识别,或选择某个草案。
  3. 查看结果:成功提示,或带实例路径的错误列表。
  4. 修正数据(或 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 内部的引用。

为什么一次显示多个错误?

所有错误都会被收集起来,方便你一次性全部修复。

推荐的下一步

探索更多分类