JSON转Go结构体
根据 JSON 数据自动生成 Go 语言的结构体(struct),支持嵌套、数组、可选字段,自动生成 JSON tag。
JSON 转 Go 结构体
JSON 转 Go 结构体工具使用指南
📌 简介
JSON 转 Go 结构体工具是一款面向 Go 语言开发者的在线工具,可以根据 JSON 数据自动生成 Go 语言的结构体(struct)定义。支持嵌套对象、数组、可选字段(omitempty)识别,并自动生成 JSON tag,让您无需手动编写繁琐的类型定义。在处理 REST API 响应、配置文件、数据结构解析等场景中非常实用。
📖 Go 结构体与 JSON 的对应
Go 语言中处理 JSON 数据需要用到 struct 类型,通过 encoding/json 包进行序列化和反序列化。struct 字段必须导出(首字母大写)才能被 JSON 包处理,同时使用 tag 说明映射关系,例如 Name string `json:"name"`。JSON 中的字段名通常是蛇形命名(user_name),而 Go 的惯例是驼峰命名(UserName),需要正确转换。本工具会自动完成这些映射,让您专注于业务逻辑。
💼 常见应用场景
- API 开发: 根据接口文档的 JSON 样例生成请求/响应结构体。
- 爬虫开发: 根据目标网站的 JSON 数据生成解析结构体。
- 配置解析: 根据配置文件格式生成对应的结构体。
- 数据迁移: 将其他系统的 JSON 数据映射到 Go 结构体。
- 代码生成: 集成到代码生成工具中,自动化工作流。
⚙️ 使用步骤
- 将 JSON 数据粘贴到左侧输入框。
- 设置根结构体名称(默认 Root)。
- 选择是否生成 JSON tag,是否添加 omitempty。
- 右侧会实时生成 Go 结构体代码。
- 点击"复制代码"粘贴到 .go 文件中使用。
⚠️ 注意事项
- 字段名会从蛇形/连字符/空格转换为 Go 的驼峰命名。
- 数字默认推断为 int 或 float64,如需更精确的类型请手动调整。
- 数组元素为对象时会自动生成子结构体。
- omitempty 选项会让零值字段在序列化时被忽略。
❓ 常见问题 (FAQ)
Q: 为什么字段名首字母大写?
A: Go 语言中,只有首字母大写的字段才能被外部包访问(包括 encoding/json 包)。因此生成的 struct 字段名都是大驼峰命名。
Q: 支持 null 值吗?
A: 支持。null 值会推断为 interface{} 类型。如需更精确的类型(如 *string),请手动调整。
Q: 数据会上传吗?
A: 不会。所有转换在浏览器本地完成,JSON 数据不会离开您的设备。