JSON Schema 生成器

从 JSON 数据自动生成 Schema,支持验证和 Mock 数据生成

JSON Schema 是描述 JSON 数据结构的标准规范,广泛用于 API 文档、数据验证、自动化测试等场景。ForJSON 提供免费的 JSON Schema 生成器,能够从现有 JSON 数据自动推断并生成符合规范的 Schema,同时支持 Schema 验证和基于 Schema 的 Mock 数据生成。

无论您是后端开发需要编写 API 文档,前端开发需要验证接口数据,还是测试工程师需要生成测试数据,ForJSON 的 JSON Schema 工具都能显著提升效率,减少手动编写 Schema 的繁琐工作。

什么是 JSON Schema

JSON Schema 是一种基于 JSON 格式的声明式语言,用于描述 JSON 数据的结构、类型约束和验证规则。它就像是 JSON 数据的"蓝图"或"合同",定义了数据应该是什么样子。

JSON Schema 的核心作用

JSON Schema 的应用场景

🔌 API 开发

定义 RESTful API 的请求和响应格式,自动生成 API 文档(配合 OpenAPI/Swagger)。

✅ 数据校验

在后端接收请求时自动验证参数,在前端验证表单输入,减少无效数据。

🧪 自动化测试

根据 Schema 生成测试用例,确保接口返回数据始终符合规范。

📝 配置文件验证

验证应用配置文件格式(如 VS Code 的 settings.json Schema)。

🔄 数据迁移

在数据库迁移或格式升级时,确保新旧数据格式兼容。

📚 团队协作

统一团队对数据结构的理解,避免沟通成本和理解偏差。

如何使用 ForJSON 的 JSON Schema 生成器

功能 1:从 JSON 生成 Schema

步骤 1:访问 ForJSON,将现有 JSON 数据粘贴到编辑器。

步骤 2:点击工具栏的"Schema"按钮,选择"生成 Schema"。

步骤 3:ForJSON 会自动分析 JSON 结构,推断字段类型、必填项、数组元素类型等,生成完整的 JSON Schema。

步骤 4:复制生成的 Schema,或导出为 .json 文件,用于 API 文档或验证逻辑。

💡 智能推断:

ForJSON 的 Schema 生成器能够:

  • 自动识别字段类型(string、number、boolean、array、object)
  • 分析数组元素,生成 items Schema
  • 识别嵌套对象的结构
  • 设置合理的 required 必填字段
  • 添加 title 和 description 注释(可手动补充)

功能 2:验证 JSON 是否符合 Schema

步骤 1:准备好 JSON Schema(可以是生成的,也可以是手写的)。

步骤 2:点击"Schema"→"验证",粘贴 Schema 和要验证的 JSON 数据。

步骤 3:ForJSON 会立即返回验证结果:

功能 3:根据 Schema 生成 Mock 数据

步骤 1:准备 JSON Schema。

步骤 2:点击"Schema"→"生成 Mock 数据",输入需要生成的数据条数。

步骤 3:ForJSON 会根据 Schema 自动生成符合规范的随机数据,包括:

步骤 4:生成的 Mock 数据可直接用于前端开发、接口测试、演示场景。

实用示例

示例 1:用户对象的 Schema 生成

原始 JSON:

{ "id": 1001, "username": "alice", "email": "alice@example.com", "age": 28, "isActive": true, "roles": ["admin", "editor"], "profile": { "avatar": "https://example.com/avatar.jpg", "bio": "Full-stack developer" } }

自动生成的 JSON Schema:

{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "id": { "type": "integer", "description": "用户ID" }, "username": { "type": "string", "description": "用户名" }, "email": { "type": "string", "format": "email", "description": "邮箱地址" }, "age": { "type": "integer", "minimum": 0, "maximum": 150 }, "isActive": { "type": "boolean", "description": "账户是否激活" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "用户角色列表" }, "profile": { "type": "object", "properties": { "avatar": { "type": "string", "format": "uri" }, "bio": { "type": "string" } }, "required": ["avatar"] } }, "required": ["id", "username", "email"] }

示例 2:Schema 验证错误提示

JSON 数据:

{ "id": "not-a-number", // ❌ 应该是整数 "username": "bob", // ❌ 缺少必填字段 email "age": -5, // ❌ age 不能为负数 "roles": "admin" // ❌ 应该是数组 }

ForJSON 验证结果:

验证失败,发现 4 个错误: 1. /id: 类型错误 期望: integer 实际: string 2. /email: 缺少必填字段 required 中定义了 email,但数据中未找到 3. /age: 数值超出范围 minimum 为 0,但实际值为 -5 4. /roles: 类型错误 期望: array 实际: string

示例 3:根据 Schema 生成 Mock 数据

输入 Schema(订单对象):

{ "type": "object", "properties": { "orderId": { "type": "string", "pattern": "^ORD[0-9]{8}$" }, "amount": { "type": "number", "minimum": 0.01, "maximum": 9999.99 }, "status": { "type": "string", "enum": ["pending", "paid", "shipped", "completed", "cancelled"] }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["orderId", "amount", "status"] }

ForJSON 生成的 Mock 数据(3 条):

[ { "orderId": "ORD20260826", "amount": 458.32, "status": "paid", "createdAt": "2026-08-26T10:32:15Z" }, { "orderId": "ORD20260827", "amount": 1299.00, "status": "shipped", "createdAt": "2026-08-26T14:18:42Z" }, { "orderId": "ORD20260828", "amount": 89.99, "status": "pending", "createdAt": "2026-08-26T16:55:01Z" } ]

JSON Schema 关键字说明

类型定义(type)

常用约束

format 常用值

为什么选择 ForJSON

ForJSON 的 JSON Schema 工具优势:

  • 智能生成:从 JSON 自动推断 Schema,省去手写 Schema 的繁琐
  • 即时验证:实时校验 JSON 数据,详细报错信息帮助快速定位问题
  • Mock 数据生成:根据 Schema 自动生成测试数据,加速开发
  • 符合规范:生成的 Schema 遵循 JSON Schema Draft-07 标准
  • 完全免费:无使用限制,无需注册
  • 隐私保护:本地浏览器处理,数据不上传
  • 多功能集成:Schema 工具与格式化、转换、AI 编辑无缝配合

常见问题

Q1: ForJSON 支持哪个版本的 JSON Schema?

ForJSON 支持 JSON Schema Draft-07 规范,这是目前最广泛使用的版本,兼容大多数验证库和工具。

Q2: 生成的 Schema 可以直接用于生产环境吗?

可以作为起点,但建议根据实际业务需求进行调整。ForJSON 生成的 Schema 是基于样本数据推断的,可能需要补充约束条件(如字符串长度、数值范围)和描述信息。

Q3: 如何在代码中使用 JSON Schema 进行验证?

可以使用各语言的 JSON Schema 验证库:

Q4: Mock 数据的随机性可以控制吗?

ForJSON 根据 Schema 的约束生成数据。可以通过设置 enum、pattern、minimum/maximum 等字段来控制生成规则。

Q5: 可以为嵌套很深的 JSON 生成 Schema 吗?

可以。ForJSON 支持任意深度的嵌套结构,会递归分析所有层级并生成完整的 Schema。

立即使用 JSON Schema 生成器

完全免费,本地处理,保护隐私