JSON转JSON Schema工具:将JSON数据自动转换为JSON Schema格式,支持嵌套对象、数组、多种数据类型识别,生成符合JSON Schema Draft规范的Schema文档,适用于API文档、数据验证、接口规范等场景。
JSON输入
JSON Schema输出
JSON转JSON Schema工具使用说明
JSON转JSON Schema工具是一款专业的在线Schema生成工具,可将JSON数据自动转换为标准的JSON Schema格式。 该工具支持复杂的嵌套对象、数组结构和多种数据类型识别,能够智能推断数据类型并生成符合JSON Schema Draft规范的Schema文档。 适用于API文档编写、数据验证、接口规范定义等场景,帮助开发者快速构建标准化的数据结构描述。
功能特性
- 智能类型推断:自动识别并映射JSON数据类型到Schema类型,包括string、number、boolean、object、array、null等
- 嵌套结构支持:完美处理多层嵌套对象和数组结构,生成对应的Schema定义和属性描述
- 格式识别:智能识别email、URL、日期等特殊格式,并在Schema中添加相应的format约束
- 规范兼容:生成的Schema完全符合JSON Schema Draft 2020-12规范,确保标准化和兼容性
- 约束推断:根据数据特征自动添加合理的约束条件,如minimum、maximum、required等
- 实时预览:提供实时的Schema预览,支持语法高亮和格式化显示
使用步骤
- 在左侧代码编辑器中粘贴或输入有效的JSON数据,支持语法高亮和错误提示
- 工具将自动分析JSON结构,识别数据类型和嵌套关系
- 点击"JSON转Schema"按钮开始智能转换,生成对应的JSON Schema
- 在右侧代码预览区查看生成的Schema文档,支持语法高亮显示
- 使用"复制"功能一键复制Schema代码,或使用"分享"功能生成分享链接
- 可将生成的Schema用于API文档、数据验证、接口规范等场景
类型映射规则
- 字符串类型:JSON字符串映射为Schema string类型,自动识别email、uri、date等格式
- 数值类型:JSON数字根据值类型映射为Schema integer或number类型
- 布尔类型:JSON布尔值true/false映射为Schema boolean类型
- 数组类型:JSON数组映射为Schema array类型,并推断items的类型定义
- 对象类型:JSON对象映射为Schema object类型,包含properties和required属性
- null值处理:JSON null值映射为Schema null类型,支持nullable约束
应用场景
- API文档:为REST API接口生成标准的请求和响应数据Schema定义
- 数据验证:创建数据验证规则,确保输入数据符合预期格式和约束
- 接口规范:定义微服务间通信的数据格式规范,提高系统集成效率
- 配置文件:为配置文件定义Schema,支持IDE智能提示和验证
- 测试用例:生成测试数据的Schema定义,用于自动化测试和Mock数据
生成示例
示例JSON输入:
{
"name": "张三",
"age": 28,
"email": "zhangsan@example.com",
"isActive": true,
"hobbies": ["读书", "游泳"],
"address": {
"city": "北京",
"zipCode": "100000"
}
}
生成的JSON Schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"title": "Generated Schema",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
},
"email": {
"type": "string",
"format": "email"
},
"isActive": {
"type": "boolean"
},
"hobbies": {
"type": "array",
"items": {
"type": "string"
}
},
"address": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"zipCode": {
"type": "string"
}
},
"required": ["city", "zipCode"]
}
},
"required": ["name", "age", "email", "isActive", "hobbies", "address"]
}