JSON Schema 生成器
从 JSON 数据自动推断生成 JSON Schema,支持 Draft-07/2019-09/2020-12 规范
场景示例 — 点击「填入」自动填充并生成
用户对象
包含 id/name/email/age 的典型用户 JSON
商品列表
含嵌套对象的数组结构
API 响应体
含 code/message/data 的标准响应
配置文件
含多层嵌套的配置 JSON
关于 JSON Schema 生成器
- 从任意 JSON 数据自动推断生成符合规范的 JSON Schema 文档
- 支持嵌套对象、数组、null、boolean、integer、number、string 等所有 JSON 类型
- 与现有 json、json2cs、json2go、jsonpath 工具形成完整的 JSON 工具链
操作说明
- 在左侧粘贴 JSON 数据,选择 Schema 版本和推断选项,点击「生成 Schema」
- 支持拖拽
.json文件到左侧编辑器自动加载;支持 Ctrl+Enter 快捷键触发生成 - 点击「示例」加载典型用户对象 JSON,点击「复制」复制生成结果,点击「下载 .json」保存文件
注意事项
- 数组取第一个元素推断 items 类型;空数组生成
{"type": "array", "items": {}} - 数值范围和字符串长度推断基于示例值,实际业务场景需手动调整
- 字符串格式推断(date-time、email、uri、uuid)基于正则匹配,复杂场景需手动确认
- 所有处理均在浏览器本地完成,不会上传任何数据
JSON Schema 知识详解
Schema 版本对比
| 版本 | 发布年份 | 主要特性 | 推荐场景 |
|---|---|---|---|
| Draft-07 | 2018 | 最广泛支持,if/then/else,readOnly/writeOnly | 大多数场景首选 |
| Draft-2019-09 | 2019 | $anchor,unevaluatedProperties,递归引用 | 复杂 Schema 组合 |
| Draft-2020-12 | 2020 | prefixItems(替代 items),$dynamicRef | 最新标准,工具支持逐步完善 |
类型推断规则
| JSON 值 | 推断类型 | 附加推断(开启选项时) |
|---|---|---|
"alice@example.com" | string | format: "email" |
"2024-01-15T10:30:00Z" | string | format: "date-time" |
"https://example.com" | string | format: "uri" |
"hello" | string | minLength/maxLength(开启字符串长度推断) |
42 | integer | minimum/maximum(开启数值范围推断) |
3.14 | number | minimum/maximum(开启数值范围推断) |
true | boolean | — |
null | null | — |
{...} | object | 递归推断 properties |
[...] | array | 取第一个元素推断 items |
常见使用场景
- API 文档:在 OpenAPI/Swagger 中定义请求体和响应体的数据结构
- 数据验证:使用
ajv(Node.js)、jsonschema(Python)等库在运行时验证数据 - 代码生成:输入到
quicktype、json-schema-to-typescript等工具生成强类型代码 - IDE 智能提示:VS Code 等编辑器可根据 Schema 提供 JSON 文件的自动补全和校验
- 表单生成:
react-jsonschema-form等库可根据 Schema 自动渲染表单