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 结构体
Go 是强类型语言,对接 JSON 接口时必须先定义匹配的结构体,手写既慢又容易拼错 json tag。本工具在浏览器本地解析样例 JSON,自动生成带 json tag 的 Go 结构体:字段名转为导出的大驼峰,嵌套对象拆分为独立 struct,数组推断为切片类型,并支持 omitempty 选项。数据不上传。 建议在日常开发中收藏本工具,遇到数据格式转换需求时即可快速打开使用。所有转换均在浏览器本地完成,数据不会上传,可放心粘贴敏感内容。
使用场景
- 对接 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 等。
有浏览器兼容性要求吗?
本工具兼容所有现代浏览器(Chrome、Firefox、Edge、Safari),无需安装任何插件或扩展。
可以离线使用吗?
首次加载后,部分功能在离线状态下仍可使用。页面资源加载后,核心逻辑完全在浏览器本地运行,不依赖网络。