JSON 转类型代码

把 JSON 一键生成 TypeScript / Go / Python / Java / Rust 类型定义。

什么是JSON 转类型代码?

JSON 转类型代码是一个把 JSON 数据结构自动转换成主流编程语言类型定义的工具。你粘贴一段 JSON(比如接口返回的示例数据),工具会分析其字段、嵌套结构和数据类型(字符串、数字、布尔、数组、对象、null),然后生成对应语言的类型声明代码,比如 TypeScript 的 interface、Go 的 struct、Python 的 dataclass/TypedDict、Java 的 class、Rust 的 struct。 它解决的是前后端联调、写 SDK 或维护数据模型时最烦人的重复劳动:手写类型定义容易漏字段、写错类型,尤其是嵌套很深或字段很多的接口响应。用这个工具几秒钟就能拿到一份可用的类型骨架,剩下的只需要按需微调字段名和可选性。

为什么使用JSON 转类型代码?

典型场景:对接一个新的第三方 API,拿到一份示例 JSON 响应,想快速在前端项目里补上 TypeScript 接口定义;后端写 Go/Java 服务需要给一段配置或请求体生成对应的结构体;写 Python 脚本处理 JSON 数据,想要有类型提示的 dataclass。 和手写类型的区别在于:工具会自动推断数组元素类型、识别嵌套对象并生成对应的子类型,还会处理可能为空的字段。它和 JSON Schema 生成不同——JSON Schema 描述的是校验规则,而这里生成的是可以直接粘贴进代码里使用的语言级类型定义。

使用示例

TypeScript 接口生成

输入 {"id": 1, "name": "张三", "tags": ["vip", "new"], "profile": {"age": 20}},生成 interface Root { id: number; name: string; tags: string[]; profile: { age: number } }。

Go struct 生成

同样的输入 JSON,切换到 Go 语言,生成 type Root struct { Id int `json:"id"`; Name string `json:"name"`; Tags []string `json:"tags"`; Profile struct{ Age int `json:"age"` } `json:"profile"` },字段名自动转为大驼峰并保留原始 json tag。

数组根节点处理

如果输入的 JSON 顶层就是数组,比如 [{"id":1},{"id":2}],工具会取数组元素的结构生成单个类型,并提示这是该类型的数组(TypeScript 中表现为 Root[])。

使用提示

如果 JSON 中同一个字段在数组的不同元素里出现类型不一致(如价格有时是数字有时是字符串),生成结果会以先遇到的类型为准,建议提供尽量完整、有代表性的示例数据再生成,减少后续手工修正的工作量。

常见问题

支持哪些目标语言?
支持 TypeScript、Go、Python(dataclass)、Java、Rust 五种,选择语言后点击「生成」即可。
数组和嵌套对象怎么处理?
数组类型取首个元素推断;嵌套对象会递归生成对应的子类型/结构体,字段名转换为大驼峰作为类型名,根类型默认命名为 Root。
数据会上传服务器吗?
不会。JSON 解析与代码生成均由浏览器本地 JavaScript 完成,不发起任何网络请求。
生成的类型一定准确吗?
工具基于你提供的这一份 JSON 样本推断类型,如果某字段在其他情况下可能是不同类型(比如有时是 number 有时是 string),生成结果不会自动识别这种可选情况,建议生成后人工核对,尤其是可能为空或可选的字段。
支持哪些语言?
目前支持 TypeScript、Go、Python、Java、Rust 的类型/结构定义生成,均在浏览器本地静态生成,不依赖服务器。
中文字段名或中文字符串值会有问题吗?
字段名如果是中文,会尽量转换成合法的标识符命名(依语言规则而定),字符串值本身不影响类型推断,只用来判断该字段是字符串类型。
嵌套很深的 JSON 支持吗?
支持,工具会递归解析每一层对象和数组,为每一层生成对应的子类型并正确嵌套引用。
生成后可以直接编译吗?
生成的代码是类型定义骨架,语法上通常可以直接使用,但字段可选性、注释、复杂联合类型等仍建议按业务需求调整。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。