JSON Schema 生成器
从任何示例 JSON 自动生成 JSON Schema(Draft-07)。粘贴您的 JSON,立即获得有效的 Schema——无需注册。
缩进:
输入 JSON
生成的 Schema
您的 JSON Schema 将显示在此处
相关工具
关于 JSON Schema 生成器
工作原理
- 在左侧面板粘贴或输入任何有效的 JSON
- 工具递归分析每个键和值
- 自动推断类型:string、number、integer、boolean、object、array、null
- 所有存在的键都列在 "required" 数组中
- 生成的 Draft-07 Schema 显示在右侧
常见使用场景
- 启动 API 文档和 OpenAPI Schema
- 在后端服务中验证 JSON 负载
- 使用 json-schema-to-typescript 生成 TypeScript 类型
- 在微服务之间创建严格的数据契约
- 记录配置文件格式
常见问题
什么是 JSON Schema?
JSON Schema 是一种用于注释和验证 JSON 文档的规范。它描述 JSON 数据的结构、类型和约束,使输入验证、文档生成以及服务间数据契约共享变得更加容易。
此工具生成哪个 JSON Schema 草稿版本?
本工具生成 JSON Schema Draft-07,这是目前支持最广泛的版本,与 VS Code、Postman 和 OpenAPI 3.x 等主流验证器、编辑器和 API 工具兼容。
Schema 推断是如何工作的?
工具递归检查 JSON 中的每个值,为每个键确定 JSON 类型(string、number、integer、boolean、array、object 或 null),收集对象中的所有唯一键并将其标记为必填。数组项类型由第一个元素推断。所有操作在浏览器中完成,数据不上传服务器。
所有键都会被标记为必填吗?
默认情况下,示例 JSON 中存在的每个键都会被添加到 "required" 数组中。如果您的实际数据可以有可选字段,只需在生成的 Schema 中从 required 数组中删除这些键即可。
null 值如何处理?
当示例 JSON 中的值为 null 时,工具生成类型 "null"。如果该字段也可以包含其他类型,请在生成 Schema 后手动将类型改为数组,例如 ["string", "null"]。
可以从根级别的 JSON 数组生成 Schema 吗?
可以。如果您的 JSON 是顶级数组,生成的 Schema 将具有类型 "array",并包含从第一个元素推断的 "items" 子 Schema。
我的 JSON 数据会被发送到服务器吗?
不会。所有处理完全在您的浏览器中通过客户端 JavaScript 完成。您的 JSON 永远不会传输到我们的服务器,敏感数据保持私密。
生成的 Schema 可以用于 OpenAPI / Swagger 规范吗?
可以。OpenAPI 3.x 使用 JSON Schema Draft-07 的超集,因此本工具的输出可以直接粘贴到 OpenAPI 组件的 "schema" 部分,只需少量调整。
如果 JSON 有深层嵌套对象怎么办?
工具完全支持任意深度的嵌套 JSON 结构。每个嵌套对象都会获得自己的 "properties" 块,并带有正确的类型注释,嵌套深度没有硬性限制。
JSON Schema 中 "number" 和 "integer" 有什么区别?
JSON Schema 区分 "integer"(整数,如 1、42、-7)和 "number"(任何数值,包括小数,如 3.14)。本工具在采样值没有小数部分时自动使用 "integer",否则使用 "number"。
生成后可以自定义 Schema 吗?
当然可以。输出是可编辑的纯文本。常见的自定义包括添加 "description" 字段、用 "minLength"/"maxLength" 或 "pattern" 收紧字符串约束、添加 "enum" 数组以及调整 "required" 列表。
"additionalProperties: false" 选项有什么作用?
启用后,"additionalProperties: false" 会添加到 Schema 中的每个对象。这告诉验证器拒绝任何未在 "properties" 中明确列出的键,适合严格的 API 契约。