Go 结构体转 JSON 示例生成器

粘贴带有 json 标签的 Go struct 定义,即可自动生成对应的 JSON 示例数据。支持嵌套 struct、切片、omitempty 以及 json:"-",适合用于 API 模拟数据和 Postman 示例。

由 Go 结构体生成 JSON 样本

要搭 API 的模拟接口,或往 Postman 里登记一份响应示例时,您总得亲手把结构体定义会产出怎样的 JSON 誊写出来。本工具只需您贴入 Go 的结构体定义,便把那个形状生成为样本 JSON,嵌套结构体、切片、`omitempty` 与 `json:"-"` 一并照应。

**这里要紧的是:Go 的字段名未必就成为 JSON 的键。** 有 json 标签时以标签为准,而带 `json:"-"` 的字段根本不会出现。由于 `omitempty` 会在值为零值时把字段丢掉,**同一个结构体的两次编码,连键的阵容都可能不同。** 因而单凭肉眼读定义容易看错 JSON 的真实形状,把它机械地展开正是本工具的用武之地。生成的值只是各类型的代表值,用前请换成有意义的数据。

使用方法

  1. 贴入结构体定义 几个相关的结构体一并贴入也无妨。
  2. 指明要用的结构体 **有多个时请指定;留空则采用第一个结构体。**
  3. 查看生成的 JSON 嵌套的结构体与切片都会完整展开。
  4. 换上自己的值 里头填的是代表值,请换成合乎用途的数据。

用好本工具的小技巧

  • 一次粘贴多个 struct 时,嵌套字段的类型会被自动解析并递归生成对应的示例对象(若找不到定义则用空对象 {} 代替,并显示警告)。
  • 指定目标 struct 名称后,即使输入中包含多个 struct,也能选择作为根对象的那一个(留空时默认使用第一个出现的 struct)。
  • 标记为 json:"-" 的字段会从 JSON 输出中排除。带 omitempty 的字段仍会照常输出对应的键,如不需要请手动删除。
  • 生成的数值仅是基于类型的占位符(字符串为 "example",数字为 1 等)。若要作为真实的 API 响应示例,请自行替换为实际数据。
  • 本工具与姊妹工具「JSON 转 Go 结构体」正好方向相反。可将 Go 处理函数中定义的 struct 快速转换为供前端或 QA 团队使用的示例数据。

这些场景会用到

搭建 API 的模拟接口

**在服务端写成之前就把响应示例定下来,前端便无须干等。**

往文档里放示例

可作为贴进 Postman 示例或 OpenAPI 样本的素材。

确认标签的效果

`omitempty` 与 `json:"-"` 究竟产出什么,可以看到具体的形状。

与前端敲定数据形状

拿出具体的 JSON,比递过去一份类型定义更不容易生出误会。

Go 编码的术语

json 标签
附在字段上、形如 `json:"user_id"` 的注解,**它为 JSON 一侧的键命名。** 没有它时便照用字段名。
omitempty
一项设定,**当值为零值时把整个键从输出中略去。** 请留意 0 与空字符串也会一并被丢掉。
json:"-"
把该字段挡在 JSON 之外的设定,用来藏起供内部使用的字段。
零值
各类型既定的初始值:数值为 0,字符串为空,指针与切片为 nil。
切片
长度可变的序列,在 JSON 中成为数组。**nil 的切片会写成 `null`,这一点与空数组不同。**
嵌入字段
只写类型名便把另一个结构体纳入的记法。在 JSON 中,其字段与父级的键处于同一层。

常见问题

手动将 Go 的 API 响应 struct 转换为 JSON 很容易出错,尤其是嵌套层级较深时,字段类型或 json 标签很容易理解错误。自动生成可以让你更快地向前端或 QA 团队提供准确的示例数据。

如果在输入内容中找不到所引用 struct 的定义,该字段的值会输出为空对象 {},并在页面上显示警告信息。将定义所在的 struct 一并粘贴即可正确生成嵌套示例。

omitempty 只是 Go 端在编码时省略零值的指示,因此对应的键仍会照常出现在示例 JSON 中。而标记为 json:"-" 的字段在编码时会被完全排除,因此也不会出现在示例 JSON 里。

没有,它们只是满足类型要求的占位符。字符串为 "example",整数为 1,浮点数为 1.5,布尔值为 true,都是固定值,实际使用时请自行替换。

不是。本工具是基于正则表达式和逐行分析的简易解析器,并未使用真正的 Go 语法解析器(AST)。因此不支持跨多行的类型定义或匿名嵌套 struct 等复杂写法,请将其视为快速生成草稿的工具。
工具君

闲话 ― 与「JSON 转 Go 结构体」正好相反的思路

在用 Go 开发 Web API 时,响应结构通常由 struct 与 json 标签组合定义。但当前端开发者或 QA 工程师想确认 API 的实际表现时,阅读 Go 代码并在脑中逐个把字段类型换算成 JSON 是一件既费时又容易出错的工作。

本工具正好与姊妹工具「JSON 转 Go 结构体」方向相反:只需粘贴 Go 的 struct 定义,就能根据 json 标签生成对应的键名,并按字段类型填入占位值,生成可直接用于 Postman 示例或前端模拟数据的 JSON。

不过本工具并非真正的 Go 编译器,而是基于正则表达式与逐行分析的简易解析器。它能处理简单的字段定义,以及在同一输入中一并粘贴的嵌套 struct,但对于匿名嵌套 struct 或跨多行的类型定义等复杂写法可能无法正确解析。请将其作为草稿参考,并结合实际 Go 源码确认最终结构。