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"]
}