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 的真实形状,把它机械地展开正是本工具的用武之地。生成的值只是各类型的代表值,用前请换成有意义的数据。
使用方法
- 贴入结构体定义 几个相关的结构体一并贴入也无妨。
- 指明要用的结构体 **有多个时请指定;留空则采用第一个结构体。**
- 查看生成的 JSON 嵌套的结构体与切片都会完整展开。
- 换上自己的值 里头填的是代表值,请换成合乎用途的数据。
用好本工具的小技巧
- 一次粘贴多个 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 中,其字段与父级的键处于同一层。
常见问题
闲话 ― 与「JSON 转 Go 结构体」正好相反的思路
在用 Go 开发 Web API 时,响应结构通常由 struct 与 json 标签组合定义。但当前端开发者或 QA 工程师想确认 API 的实际表现时,阅读 Go 代码并在脑中逐个把字段类型换算成 JSON 是一件既费时又容易出错的工作。
本工具正好与姊妹工具「JSON 转 Go 结构体」方向相反:只需粘贴 Go 的 struct 定义,就能根据 json 标签生成对应的键名,并按字段类型填入占位值,生成可直接用于 Postman 示例或前端模拟数据的 JSON。
不过本工具并非真正的 Go 编译器,而是基于正则表达式与逐行分析的简易解析器。它能处理简单的字段定义,以及在同一输入中一并粘贴的嵌套 struct,但对于匿名嵌套 struct 或跨多行的类型定义等复杂写法可能无法正确解析。请将其作为草稿参考,并结合实际 Go 源码确认最终结构。