📋

JSON Schema 生成器

从 JSON 数据自动生成 JSON Schema 并进行类型推断

JSON 输入

Schema 选项

Schema 版本
Draft 2020-12 (Latest)

什么是 JSON Schema

JSON Schema 是一种词汇表,允许您注释和验证 JSON 文档。它为 JSON 数据提供契约,定义预期的结构、类型和验证规则。JSON Schema 广泛用于 API 文档、数据验证、代码生成和测试。它有助于确保应用程序之间的数据质量和一致性。

功能特点

🔮

智能类型推断

从 JSON 值自动检测数据类型,包括字符串、数字、布尔值、数组、对象和 null,智能检测 email、URL、日期、时间等格式
📋

多版本支持

支持 JSON Schema Draft 2020-12、2019-09、Draft-07 和 Draft-04,提供正确的 $schema URI 和版本特定功能

验证规则

配置必填字段、类型约束、格式验证和严格模式,使用 additionalProperties 控制实现强大的 schema 定义
⚙️

灵活配置

根据 API 文档和验证需求,选择包含或排除字段描述、示例和严格验证规则

📋使用指南

1️⃣
输入 JSON 数据
粘贴您的示例 JSON 数据或加载示例开始
2️⃣
配置选项
选择 Schema 版本,启用必填字段、描述和其他选项
3️⃣
生成 Schema
点击生成以创建具有自动类型推断的 JSON Schema
4️⃣
使用 Schema
复制或下载生成的 schema 用于 API 验证或文档

📚技术介绍

📐JSON Schema 规范

JSON Schema 是用于描述 JSON 数据结构和验证规则的声明性语言。它使用 'type'、'properties'、'required'、'items' 和 'additionalProperties' 等关键字来定义约束。该规范经历了多个草案版本的演进,Draft 2020-12 是最新的稳定版本。Schema 本身是有效的 JSON 文档,可用于验证、文档化和代码生成。

🔍类型推断算法

生成器分析 JSON 值以推断适当的 schema 类型。对于原始值,它检测 string、number、integer、boolean 或 null。对于字符串,它使用正则表达式模式应用格式检测,识别 email、uri、date、time、ipv4、ipv6 和其他标准格式。对于对象,它递归生成带有属性定义的嵌套 schema。对于数组,它从第一个元素推断 schema。

验证关键字

JSON Schema 提供丰富的验证关键字:'type' 用于数据类型,'required' 用于必填字段,'properties' 用于对象 schema,'items' 用于数组,'minimum'/'maximum' 用于数字,'minLength'/'maxLength' 用于字符串,'pattern' 用于正则验证,'enum' 用于允许值,'format' 用于语义验证如 email 或 URL。这些关键字组合创建全面的验证规则。

🔄Schema 版本

JSON Schema 经历了多个草案版本的演进:Draft-04(2013年,广泛支持)、Draft-07(2018年,添加 if/then/else)、Draft 2019-09(引入 $recursiveRef)和 Draft 2020-12(最新,具有 $dynamicRef 和改进的词汇表)。每个版本在添加新功能的同时保持向后兼容性。$schema 关键字指定 schema 使用的版本。

常见问题

什么是JSON Schema,为什么要使用它?

JSON Schema是一种用于注释和验证JSON文档的词汇表。它使用JSON格式本身描述数据结构、约束和验证规则。优势包括:自动数据验证、API文档、代码生成、改善开发者体验和基于契约的开发。它广泛用于API设计、配置验证和表单生成。
💬

这个工具可以从任何JSON生成schema吗?

可以!此工具分析任何有效的JSON输入并生成相应的JSON Schema Draft-07兼容schema。它处理所有JSON数据类型:对象、数组、字符串、数字、布尔值和null。它从您的示例数据推断类型、必填字段和基本模式。对于复杂场景,您可能需要手动优化生成的schema。
🔍

生成的schema有多准确?

生成器基于样本数据分析创建schema。它准确识别数据类型和结构,但对约束做保守假设。例如,它不会知道数字是否应该只为正数,或字符串是否必须匹配特定模式,除非这些约束出现在所有样本中。始终使用您的领域特定验证规则审查和增强生成的schema。
💡

我可以使用生成的schema进行验证吗?

当然!生成的schema完全兼容JSON Schema验证器,如Ajv、joi或json-schema库。您可以使用它验证API请求/响应、配置文件或用户输入。该schema遵循JSON Schema Draft-07规范,可以集成到Node.js、Python、Java或任何支持JSON Schema的语言中。
📚

不同JSON Schema草案之间有什么区别?

JSON Schema经历了多个草案演变(Draft-04、Draft-06、Draft-07、2019-09、2020-12)。此工具生成广泛支持的Draft-07 schema。主要区别:Draft-07添加了if/then/else条件,Draft 2019-09引入词汇系统,Draft 2020-12添加unevaluatedProperties。对于大多数用途,Draft-07提供出色的兼容性和功能集。

🔗相关文档

📝更新日志

📌v1.0.251025
v1.0.251026创建 JSON Schema 生成器工具;支持多个 Draft 版本(2020-12、2019-09、Draft-07、Draft-04);智能类型推断,自动检测格式(email、URL、日期、时间);CodeMirror 编辑器,自动跟随暗色主题;配置选项支持必填字段、描述、示例和严格模式;一键复制和下载功能(2025年10月26日)

User Comments

0 / 2000
Loading...