代码生成器
JSON 到 Go 结构生成器
粘贴 JSON 并在几秒钟内获得带有正确 json 标签的 gofmt 风格的结构。在数组项中检测到的可选字段将变为 omitempty,可为 null 的值将变为指针,而整数仍保留为整数。
- 在浏览器中 100% 运行
- 无需注册 · 无需上传
- 免费、无限制使用
JSON 样本
示例: 用户对象 · Webhook 事件 —⌘/Ctrl + Enter 转换 · 拖放文件以加载它 · 本地处理
Go 结构体
输出是只读的。使用复制、下载或共享将其移出。
如何使用 JSON 前往 工具
-
粘贴您的 JSON
来自您正在积分的 API 的响应效果最佳。包含多个数组项,以便可选字段可见。
-
设置根类型名称
以资源命名:用户、事件、订单。嵌套类型是根据它们的键自动命名的。
-
复制到您的 Go 文件中
粘贴到您的项目中并运行 gofmt。字段名称大写,标签与原始键完全匹配,因此 json.Unmarshal 立即生效。
这个工具有何不同
- json 标签忠实于原始键,包括 Snake_case 和 dashes
- omitempty 对于某些数组项中缺少的字段
- 真正可为 null 的值 (*string) 的指针类型,因此 null 可以干净地解组
- 来自实际样本值的 int 与 float64;任何不可调和的混合
- 带制表符缩进的 gofmt 兼容输出
按架构划分的隐私: 此页面不包含接收您输入的分析,并且转换代码在您的选项卡中运行。加载后您可以断开网络并继续工作。
JSON 前往 — 常见问题
为什么有些字段会变成指针?
JSON null 不能存储在普通字符串或 int 中,因此可为 null 的字段将获得一个指针 (*string, *int)。这使得encoding/json能够区分“不存在”和“存在但为空”而不会失败,这正是指针类型的用途。
当字段具有混合类型时会发生什么?
如果一个值在一项中是字符串,而在另一项中是数字,则生成器将使用 any 而不是发明错误的具体类型。如果 API 确实那么松散,那么您可以决定使用自定义 UnmarshalJSON。
生成的标签是否包含 omitempty?
仅适用于示例中至少一项中缺少的字段。必填字段使用普通标签,因此往返不会丢失数据。
输出 gofmt 兼容吗?
是的 — 制表符、对齐方式和字段排序遵循 gofmt 约定。粘贴后运行 gofmt -l,它应该报告没有更改。
我可以为大型响应生成结构吗?
是的。嵌套对象成为单独的命名结构,而在解析的 JSON 中不可能进行循环,因此即使深度嵌套的有效负载也会生成一组扁平、可读的类型。
相关工具
正在搜索 “json 到 golang 结构体”, “go 结构生成器”, “json 上网”?您来对地方了—— 浏览所有19工具.