工具简介
JSON 转多语言实体类是工具派面向开发者的一款代码生成工具:把接口返回的 JSON 粘贴到左侧输入框,选择目标语言并点击「生成实体类」,右侧就会得到对应语言的实体类代码——Java Class、Python dataclass、TypeScript interface、Go struct、C# Class、Dart、Rust、Swift、Kotlin、PHP、Ruby 共 11 种语言全覆盖。工具会自动推断字段类型、把嵌套对象和对象数组拆成独立的子类,并按各语言惯例转换命名,生成结果可一键复制,全程在浏览器本地运行,打开即用、无需安装。
功能亮点
- 11 种目标语言:Java、Python、TypeScript、Go、C#、Dart、Rust、Swift、Kotlin、PHP、Ruby,输出均为各语言惯用结构——Rust 自动带 serde 派生与 rename 注解、Kotlin 生成 data class、Swift 遵循 Codable、Python 生成 @dataclass。
- 自动类型推断:字符串、整数、小数、布尔、null 分别映射为各语言对应类型;整数与小数会区分成 int / double(Go 中为 int / float64)等不同精度。
- 嵌套结构自动拆类:JSON 中的嵌套对象会递归生成独立子类;对象数组会以元素类型生成「列表<子类>」形式的字段,数组键名会智能去掉尾部 s 作为子类名。
- 三个生成选项:Java 专属「Lombok」勾选后省略 getter/setter 并附 @Data 注释;「可空」让 TypeScript 字段加
?、Go 标签加 omitempty、Dart/Kotlin 类型加?;「JSON 注解」为 Go 结构体生成json:"字段名"标签(默认开启)。 - 规范化命名转换:Java / Dart / Kotlin / Swift 字段转为 camelCase,Rust 字段转为 snake_case 并保留原名做 serde rename,Go / C# 属性转为 PascalCase,Python 保持原始字段名。
- 一键复制 + 容错提示:结果区右上角「复制」按钮一键带走全部代码;JSON 格式错误时给出红色提示「JSON 解析失败,请检查输入」,根节点不是对象时也会在输出中说明推断类型。
参数说明
| 参数 | 说明 | 默认值 / 取值范围 |
|---|---|---|
| 语言下拉框 | 选择要生成的目标语言 | Java(默认)/ Python / TypeScript / Go / C# / Dart / Rust / Swift / Kotlin / PHP / Ruby |
| 根类名 | 最外层类的名称;嵌套子类的类名由字段名自动生成 | 默认 Root |
| Lombok | 仅 Java 可见:勾选后类中不再生成 getter/setter,改为标注 // Lombok: @Data 注释 |
默认不勾选 |
| 可空 | TypeScript 字段追加 ?;Go 的 json 标签追加 ,omitempty;Dart / Kotlin 类型追加 ? |
默认不勾选 |
| JSON 注解 | Go 结构体字段生成 json:"原字段名" 标签 |
默认勾选 |
| 输入 JSON | 待转换的 JSON 文本,页面自带一段示例 | 默认示例 {name, age, vip, tags} |
使用步骤
- 打开工具页面:左侧是「输入 JSON」编辑区,右侧是「生成代码」结果区,顶部是语言、类名与选项行,页面已预置一段示例 JSON。

粘贴或编写 JSON:在左侧输入框粘贴接口返回的 JSON。默认示例中
name为字符串、age为整数、vip为布尔、tags为字符串数组,正好覆盖四种基础类型。选择目标语言与类名:在左上下拉框选择语言(如 Java),在「根类名」输入框填写最外层类名(默认 Root)。
按需勾选生成选项:Java 下可勾选「Lombok」省略 getter/setter;需要可选字段时勾选「可空」;生成 Go 结构体时保持「JSON 注解」勾选以输出 json 标签。
点击「生成实体类」:右侧结果区立即生成对应语言代码。嵌套对象会拆成独立子类排在根类之前,
tags这样的数组字段会生成List<String>(Java)之类的列表类型。复制使用:确认结果后点击结果区右上角「复制」,粘贴到项目源码中即可。
使用技巧
- 对象数组的子类名会自动「单数化」:字段
users对应的子类名会去掉尾部 s 变成 User,起字段名时用复数能让生成的类名更自然。 - 空数组与 null 会退化为通用类型:空数组推断为「任意类型列表」,null 推断为 Object / any / interface{} 等,生成后记得按实际情况手工收窄类型。
- 整数与小数分开处理:
3会生成 int 类类型,3.5会生成 double / float64,若接口实际返回浮点金额,示例数据里写成小数能让推断类型更准确。 - Go 项目保持「JSON 注解」开启:生成
json:"user_id"标签后,字段名即使转为 PascalCase 也能正确反序列化;配合「可空」还能加上 omitempty,适合精简响应体。 - 根节点必须是对象:如果 JSON 顶层是数组,工具会取第一个元素生成;顶层是字符串、数字等标量时无法生成实体类,会在输出中给出提示。
常见问题
Q1:支持哪些语言?生成的是什么结构?
共 11 种:Java Class(getter/setter 或 Lombok)、Python @dataclass、TypeScript interface、Go struct、C# Class({ get; set; })、Dart final 字段 + 构造器、Rust serde struct、Swift Codable struct、Kotlin data class、PHP Class、Ruby attr_accessor 类。
Q2:「可空」选项具体影响哪些语言?
TypeScript 字段名后加 ? 表示可选;Go 的 json 标签追加 ,omitempty;Dart 和 Kotlin 的类型后加 ? 表示可空。其余语言该选项不影响输出。
Q3:嵌套对象和数组会生成几个类?
每个嵌套对象、每个对象数组都会各自生成一个独立子类,子类代码排在根类之前;子类类名由字段名做 PascalCase 转换得到(对象数组会先去尾部 s)。
Q4:提示「JSON 解析失败」怎么办?
说明输入不是合法 JSON,常见原因是多了尾随逗号、用了单引号或混入了注释。先用 JSON 校验工具格式化一遍再粘贴即可。
Q5:生成的字段顺序和原 JSON 一致吗?
一致。工具按 JSON 对象中键的出现顺序生成字段,子类按遇到的先后顺序依次排列在根类前面。
