JSON 转 Go 结构体

转换器

把样例 JSON 转为带 json tag 的 Go 结构体,支持嵌套拆分、数组类型推断与 omitempty,适合写 RESTful API 模型层。

0 struct
JSON
Go
type Profile struct {
	Age int `json:"age"`
	City string `json:"city"`
}

type AutoGenerated struct {
	ID int `json:"id"`
	Name string `json:"name"`
	Active bool `json:"active"`
	Score float64 `json:"score"`
	Tags []string `json:"tags"`
	Profile *Profile `json:"profile"`
}

关于 JSON 转 Go 结构体

JSON 转 Go 结构体工具把 JSON 示例自动转换成带正确类型与 json 标签的 Go struct 定义,支持嵌套对象、数组与指针字段的智能推断。写 Go 后端时再也不用手动对照接口文档敲结构体,粘贴响应样例即可拿到可直接编译的代码,并可选导出 Omitempty 或自定义包名。所有转换在浏览器本地完成,示例数据不上传,适合处理含业务字段的接口响应。生成的代码符合 Go 惯例,能直接融入项目,大幅减少联调前的准备工作,也让前端同学在不熟悉 Go 标签语法时也能快速产出可用模型。面对嵌套很深的响应,它也能正确展开为带指针的字段,避免手动写错层级结构;生成的代码符合 Go 惯例能直接编译,大幅减少联调前的准备时间,也让不熟悉 Go 标签语法的同学能快速产出可用模型而不必反复试错。

使用方法

  1. 打开 JSON 转 Go 结构体 工具页面
  2. 根据需求输入或粘贴数据到输入区域
  3. 查看实时处理结果,使用复制按钮获取输出

使用场景

  • 对接 REST 接口 — 把接口返回的 JSON 粘进来,立即得到可 Unmarshal 的 Go 结构体。
  • 定义配置结构 — 根据配置文件样例生成 struct,用于加载 YAML/JSON 配置。
  • 编写爬虫/采集器 — 为第三方接口快速建模,省去手写字段的时间。
  • 生成 gRPC/消息体 — 从样例数据反推结构,作为消息或 DTO 定义的起点。
  • 学习 Go 类型映射 — 直观看到 JSON 各类型对应的 Go 类型,辅助学习。

常见问题

字段名是怎么转换的?

按 Go 规范转为导出的大驼峰(首字母大写),并对 Id/URL/API 等常见缩写做大写处理,同时保留原始 json tag。

null 值会推断成什么?

值为 null 时推断为 interface{},因为无法确定具体类型。建议用非空样例获得更精确的类型。

omitempty 有什么用?

开启后会在 json tag 上追加 ,omitempty,序列化时空值字段会被省略,适合可选字段较多的场景。

嵌套对象怎么处理?

每个嵌套对象会生成独立的命名 struct,并在父结构体中以指针引用,结构清晰、可复用。

生成后需要调整吗?

输出是标准 Go 代码,复制后可重命名 struct、调整类型或加注释。整数默认 int、小数默认 float64,可按需改成 int64 等。

广告

评论与讨论

还没有评论,来抢沙发吧!

评论仅保存在你的浏览器本地,切换设备后不可见。配置 Giscus 后可支持云端评论。