JSON 转 Go Struct

根据有代表性的 JSON 对象或数组生成 Go struct 声明,包括嵌套类型、可导出的字段名和保留原属性名的 json 标签。

设置包名和根类型名称,然后生成完整的 Go 源文件,其中包含有效的可导出字段以及保留原属性名的 json 标签。在应用中使用这些类型前,请检查依赖样本推断的类型选择。

JSON 值如何映射到 Go 类型

如何从 JSON 生成 Go struct

  1. 粘贴一个 JSON 对象或非空数组,也可以加载示例数据。
  2. 设置包名和根类型名称,并选择是否在 json 标签中加入 omitempty。
  3. 生成 Go 源代码,检查推断的类型,然后复制或下载结果。

JSON 转 Go struct 常见问题

可以使用哪种 JSON 输入?

可以输入一个 JSON 对象或任意非空 JSON 数组。顶层数组会转换为命名切片,数组中的每个对象元素都会参与字段推断。属性名必须能由 Go 标准 encoding/json 的 struct 标签表示;不支持的名称会明确报错,而不会被静默更改。

对象数组和缺失字段如何处理?

对象数组会合并所有样本元素的键。某个字段即使只出现在部分元素中,也会根据已有值生成。omitempty 选项会修改每个 json 标签,但不会添加指针,也不会校验必填字段。

null 和混合值会如何处理?

null 值、不兼容的混合值或包含不兼容值的数组会转换为 any。空数组会转换为 []any,因为样本无法表明元素类型。

生成的类型可以不经检查直接使用吗?

请将结果作为基于样本生成的起点。将类型加入项目之前,请检查可选字段、时间字符串、类似映射的对象、数值范围,以及可能超出 JSON 数字精确范围的标识符。

我的 JSON 会上传吗?

不会。本工具会在当前浏览器标签页中解析并转换 JSON,不会将其上传到服务器。

相关工具: JSON 格式化工具 · JSON 转 TypeScript · JSON Schema 生成器

代码格式化工具

格式化与美化 Python、JSON 等语言的代码。

更多工具

JSON 与数据工具

比较 JSON、校验 Schema,或将 JSON 转为 CSV、YAML。

更多工具

表格工具

查看 CSV 和 Excel 文件、格式化表格,或将 CSV 转为 Excel、SQL。

Markdown 工具

使用 Markdown 编辑器写作,并将 Markdown 转为 HTML 或纯文本。

文本工具

比较文本、统计字数、排序文本行,以及查找或替换文字。

音频转换与播放

转换音频、播放声音或 PCM 文件,以及编辑音频元数据。

音频编辑与效果

编辑、合并或拆分音频,去除噪声,或调整速度、音调和音量。

更多工具

语音工具

将文字生成 AI 语音、转录录音,或录制你的声音。

视频工具

转换与压缩视频、裁剪片段,或调整画面尺寸。

更多工具

视频播放与录制

播放视频、录制屏幕或摄像头,或使用在线镜子。

PDF 工具

合并 PDF、拆分页面、压缩文件,或将 PDF 转为图片。

更多工具

图片工具

转换图片、调整尺寸、压缩文件,并用 OCR 提取文字。

更多工具

图片创作

创建 GIF、文字图片、截图、词云和网站图标。

字幕工具

编辑字幕、将 SRT 转为 VTT,或调整字幕时间戳。

压缩包工具

解压文件、创建 ZIP 压缩包和压缩文件夹。

编码与解码工具

编码与解码 Base64、转义 URL,以及处理 HTML 或 Unicode 转义。

更多工具

数字工具

转换进制、将数字转为英文拼写,以及处理二进制或十六进制。

计算器

使用百分比、分数和统计计算器完成日常计算。

时间工具

查看在线时钟、使用秒表,或计算日期差。

网络工具

查看 IP 地址、测试 IPv6 和计算 CIDR 范围。

单位换算

换算长度、重量、温度和数据存储单位。

颜色工具

转换颜色、从图片提取配色和检查颜色对比度。

二维码与条形码

生成或识别二维码和条形码,包括 Wi-Fi 二维码。

开发与安全工具

生成哈希值、密码和 UUID、测试正则表达式,以及使用代码实用工具。

更多工具

实用工具

查看屏幕尺寸、使用屏幕尺、测试键盘,或使用提词器。

游戏

玩一会儿砸金蛋,放松一下。