JSON 转 Go 结构体
编程开发
将 JSON 数据转换为 Go 语言结构体定义,支持嵌套对象、数组类型推断、json tag 生成、字段名 PascalCase 转换
快捷样例点击加载 JSON 示例
结构体名称
输入 JSON
工具介绍
JSON 转 Go 结构体工具可将 JSON 数据自动转换为 Go 语言结构体定义,支持嵌套对象自动生成子结构体、 数组类型智能推断、json tag 自动添加、字段名 PascalCase 转换,是 Go 开发者处理 JSON 数据的必备工具。
类型映射
| JSON 类型 | Go 类型 | 示例 |
|---|---|---|
| string | string | "hello" → string |
| number (整数) | int | 42 → int |
| number (小数) | float64 | 3.14 → float64 |
| boolean | bool | true → bool |
| null | interface{} | null → interface{} |
| array | []T | [1,2] → []int |
| object | struct | {"a":1} → 嵌套结构体 |
使用场景
| 场景 | 说明 |
|---|---|
| API 对接 | 快速将第三方 API 的 JSON 响应转为 Go 结构体,加速接口开发 |
| 数据建模 | 根据 JSON 数据样本自动生成 Go 结构体定义,减少手写工作 |
| 配置解析 | 将 JSON 配置文件转为 Go 结构体,方便类型安全的配置读取 |
| 代码生成 | 批量生成数据模型的 Go 结构体,提高开发效率 |
| 学习参考 | 理解 JSON 类型与 Go 类型的映射关系 |
| 原型开发 | 快速验证数据结构设计,生成初始代码框架 |
常见问题
JSON 类型如何映射到 Go?
string→string,整数→int,小数→float64,布尔→bool,null→interface{},数组→[]T,对象→嵌套结构体。
嵌套对象怎么处理?
嵌套对象会自动生成对应的子结构体,结构体名称取字段名的 PascalCase 形式。
数组类型如何推断?
根据数组第一个元素的类型推断。空数组会生成 []interface{},建议提供包含数据的数组。
json tag 有什么用?
json tag 指定 JSON 序列化时使用的字段名,确保与原始 JSON 键名一致。
支持数组根节点吗?
当前仅支持对象根节点。如果 JSON 是数组,请用对象包裹后再转换。
字段名如何转换?
字段名自动从 snake_case/kebab-case 转为 PascalCase,如 user_name → UserName。