# JSON Schema 生成与校验 - 由 JSON 生成 Schema、在线验证数据

> 免费在线 JSON Schema 工具：根据示例 JSON 自动生成 draft 2020-12 或 draft-07 Schema，并用 Schema 校验 JSON，按 JSON Pointer 列出每处错误。

- 网址: https://qilingtools.com/zh/json-schema
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [开发](https://qilingtools.com/zh/tags/dev), [数据格式](https://qilingtools.com/zh/tags/data)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

写接口文档、做表单校验或给配置文件加约束时，经常需要一份 JSON Schema，但从零手写既费时又容易漏字段。在“生成”模式里粘贴一段示例 JSON，工具会推断每个字段的类型（区分 integer 与 number）、嵌套对象和数组结构，把数组里多个对象的字段合并（只有全部对象都有的字段才标为必填），类型不一致时生成 ["string", "null"] 这样的类型数组，还能识别 email、date-time、date、uri、uuid、ipv4 等字符串格式，可选为取值有限的字符串建议 enum、附带示例值或禁止额外字段，输出 draft 2020-12 或 draft-07。在“校验”模式里，用 Schema 检查 JSON 数据：手写的校验器支持 type、properties、required、additionalProperties、patternProperties、items 与 prefixItems（兼容 draft-07 的元组写法）、enum、const、长度与数量限制、pattern、format、minimum / maximum / exclusive、multipleOf、allOf / anyOf / oneOf / not、if / then / else、dependentRequired，以及指向 #/$defs 和 #/definitions 的 $ref（支持递归）。每处错误都会给出数据中的 JSON Pointer 路径、易懂的说明和对应的 Schema 位置。全部在浏览器本地完成。

## 使用步骤

1. 在“由 JSON 生成 Schema”中粘贴示例 JSON，选择 Schema 版本与选项
2. 复制或下载生成的 Schema，或点击“拿去校验”
3. 在“用 Schema 校验 JSON”中粘贴 Schema 和数据，查看逐条错误列表

## 功能特点

- 从示例 JSON 推断类型、必填字段与嵌套结构
- 数组中的对象自动合并字段，类型不一致生成类型数组
- 识别 email、date-time、uri、uuid、ipv4 等格式
- 可选 enum 建议、examples、additionalProperties: false
- 支持 draft 2020-12 与 draft-07
- 手写校验器覆盖常用关键字与 $ref 递归引用
- 错误列表带 JSON Pointer 路径与 Schema 位置
- 本地处理，数据不上传

## 常见问题

### 生成的 Schema 能直接用吗？

可以作为很好的起点。它完全根据示例推断：示例里没出现的字段不会出现在 Schema 中，只出现在部分数组元素里的字段不会被标为必填。建议用更多样的示例生成，再按业务补充 minLength、pattern、enum 等约束和 description 说明。

### draft 2020-12 和 draft-07 有什么区别？

两者的大部分关键字相同，主要区别是元组写法（2020-12 用 prefixItems，draft-07 用数组形式的 items 加 additionalItems）、定义位置（$defs 与 definitions）以及 $schema 地址。OpenAPI 3.1 与多数新工具使用 2020-12；一些老的库和编辑器插件只支持 draft-07。校验器两种写法都能识别。

### format 会被校验吗？

默认会校验 email、date、date-time、time、uri、uuid、ipv4、ipv6、hostname、regex 等常见格式，其中日期会检查真实存在（如 2 月 30 日判为无效）。按规范 format 默认只是注解，如果你的后端校验器不检查 format，可以取消“校验 format”保持一致。

### 有哪些不支持的功能？

不支持远程 $ref（指向其它文件或网址的引用）、$dynamicRef、unevaluatedProperties / unevaluatedItems 和自定义关键字；遇到无法解析的 $ref 会给出提示。数据和 Schema 都只在浏览器中处理，不会上传。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
