跳到正文
马克工具箱

JSON 转 Go 结构体

粘贴 JSON,得到可直接用于 encoding/json 的 Go 结构体定义。字段名遵循 Go 命名习惯,嵌套对象生成独立类型,并像 gofmt 一样对齐各列。

在浏览器本地运行,输入的内容和文件都不会上传

使用步骤

  1. 粘贴 JSON 示例,或点「加载示例」。
  2. 设置根结构体的名称。
  3. 复制或下载生成的代码,放进你的包里。

参数说明

根类型名称
顶层结构体的名称,嵌套结构体按键名命名。

使用示例

{"user_id": 7, "email": null, "tags": ["a"]} 会生成:

type Root struct {
	UserID int64    `json:"user_id"`
	Email  any      `json:"email"`
	Tags   []string `json:"tags"`
}

常见问题

字段名是怎么生成的?

键名转成导出的大驼峰名称,常见缩写按 Go 规范全部大写,例如 user_id 变成 UserID,homeUrl 变成 HomeURL。原始键名保留在 json 标签里。

什么时候用指针和 omitempty?

在部分数组元素中缺失的键会加上 omitempty。有时为 null 的值使用指针(*string),以区分 null 和空值;可选的嵌套结构体也使用指针。

数字用什么类型?

整数用 int64,小数用 float64。如果同一个键在不同元素中既有整数又有小数,使用 float64。

JSON 数据会上传吗?

不会。类型在浏览器中生成,包含真实数据的接口返回也不会离开你的设备。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具