JSON转Go Struct工具

在线把 JSON 转换成 Go 语言 struct 结构体,自动推断字段类型并生成带 json tag 的定义,适合 Go 后端开发。

工具介绍

JSON 转 Go Struct 工具可以将输入的 JSON 快速转换为符合 Go 语言规范的结构体代码,自动处理大驼峰命名、JSON Tag 和类型推断,可直接复制到 Go 项目中使用。

使用方法

  1. 将需要转换的 JSON 粘贴到左侧输入框中
  2. 根据需要勾选「所有数字转 float64」或「嵌套对象生成命名 Struct」选项
  3. 点击「转换为 Go Struct」按钮即可生成结果
  4. 点击「复制结果」按钮即可将生成的 Go 代码复制到剪贴板

转换原理

注意事项

为什么要生成大驼峰字段名?

Go 语言中只有首字母大写的字段才可以被外部包访问,JSON 序列化/反序列化库(如 encoding/json)需要导出字段才能正常工作,因此工具统一生成首字母大写的大驼峰命名。

为什么默认所有数字转 float64?可以改吗?

因为 JSON 标准中不区分整数和浮点数,JavaScript 也统一用 Number 类型存储,当数值超过 int 范围时会出错,所以默认转为更安全的 float64。你也可以取消勾选「所有数字转 float64」选项,工具会自动推断当前数字是否为整数,生成 int 类型。

嵌套对象选命名 Struct 和匿名 Struct 有什么区别?

命名 Struct 会为每个嵌套对象单独生成一个类型定义,代码结构更清晰,方便后续复用;匿名 Struct 会将嵌套结构内联到父 Struct 中,代码更简洁。你可以根据自己的编码习惯选择。

为什么不支持顶层是数组的 JSON?

Go 语言中结构体是命名类型,顶层数组无法直接生成对应结构体。你可以将整个数组包装在一个对象中,比如 {"data": [...你的数组...]},转换后可以提取数组元素的类型再使用。