按 Draft-07 / 2020-12 校验 JSON 是否符合 Schema,错误路径精确到字段。

切换工具
JSON Schema
0 字符 · 0 行
JSON 数据
0 字符 · 0 行

使用说明

用途

JSON Schema 在线校验工具,按 Draft 7 / 2019-09 / 2020-12 规范验证 JSON 数据是否符合定义的 schema,并支持从已有 JSON 数据反向推断生成 schema 草稿。常用于前后端接口契约校验、API 文档自动化、配置文件结构约束、表单数据验证等场景。错误信息精确到字段路径(如 user.address.zipCode),方便定位问题。所有校验在浏览器本地运行,零上传。

操作步骤

  1. 左侧粘贴 JSON Schema 定义(或导入 .json schema 文件)
  2. 右侧粘贴待校验的 JSON 数据
  3. 点「校验」即时反馈通过 / 失败,失败时列出所有不符合点的字段路径和具体原因
  4. 反向推断:把待校验数据 → 「推断 Schema」自动生成草稿,再手动调整 required / type / pattern
  5. Schema 草稿支持嵌套对象、数组类型、enum 枚举、format(email / date-time / uri 等)
  6. Draft 版本可切换:默认 Draft 7(最常用),可选 2019-09 / 2020-12
  7. 支持 $ref 引用本地定义,也支持外部 URL(需 CORS 允许)
  8. 校验通过 / 失败结果可导出 JSON 报告供 CI 集成

常见问题

JSON Schema 和 OpenAPI 的 schema 一样吗?
基本兼容但有细节差异。OpenAPI 3.1 完全基于 JSON Schema 2020-12;OpenAPI 3.0 用的是 Schema 子集(自有几个非标准关键字如 nullable)。本工具默认 Draft 7,校验 OpenAPI 3.0 schema 时少数关键字会被忽略,建议用 2020-12 模式校验 OpenAPI 3.1。
推断出来的 Schema 字段都是 required 吗?
默认推断时所有出现过的字段都标 required(保守策略避免漏)。手动调整去掉非必填即可。推断模式有「严格」(全部 required + enum)和「宽松」(type only)两档。
怎么校验数组里的对象格式?
Schema 里用 items 关键字定义数组元素结构:{"type":"array","items":{"type":"object","properties":{...}}}。本工具的错误信息会精确到 user.tags[2].name 这种数组下标路径。
format: "email" / "date-time" 是怎么校验的?
format 是可选关键字,本工具默认开启 ajv 全部格式校验(email / uri / uuid / date / date-time / ipv4 / ipv6 / hostname 等)。如果想关闭让 format 仅作文档提示,可在校验选项里取消勾选。
$ref 外部引用怎么用?
本地引用 $ref:"#/definitions/User" 直接生效。外部 URL 引用需要目标服务器返回正确 CORS 头允许跨域读取。建议把所有 schema 合并成单文件用 $defs 定义本地引用,CI 集成更稳。

应用场景

  • 前后端接口契约:后端约定好 schema,前端按 schema 写类型,CI 里跑校验防漂移
  • API 文档自动化:OpenAPI / AsyncAPI 文档里的 schema 用本工具校验示例数据是否一致
  • 配置文件验证:项目的 config.json 用 schema 约束字段,新成员改配置不会出错
  • JSON 数据迁移:从老格式迁到新格式时,写 schema 校验迁移结果完整性
  • 表单后端校验:前端表单收集的 JSON 在后端用 schema 二次校验,防绕过前端验证

适用场景

前后端接口契约校验、API 文档示例校验、配置文件结构约束、JSON 数据迁移验证、表单后端校验。后端、前端、API 设计、测试岗位常用。Draft 多版本支持、反向推断、字段路径精确报错是关键差异点。