JSON 转 Go
本地运行,数据不上传服务器
使用说明
写 Go 服务时,要根据接口返回的 JSON 定义 struct,字段多时手写一遍很费时间,还容易漏字段或写错 tag;对接第三方 API,先看样例数据再生成类型定义;老项目迁移时,要根据历史响应数据反推结构体。这些场景用工具生成骨架能省不少时间。 这个工具输入顶层为对象的 JSON,生成带 `json:"..."` tag 的 Go struct 定义。字段命名支持 camelCase、snake_case、PascalCase 或保留原始命名,嵌套对象可以自动生成子 struct。 输出可复制或下载为 .go 文件。适合 Go 后端、微服务开发、做 API 客户端的人。
核心功能
- ✓根据 JSON 对象生成 Go struct 定义
- ✓自动添加 json tag,保留原始 JSON key
- ✓命名策略可选 camelCase、snake_case、PascalCase、保留原始
- ✓嵌套对象可生成子 struct
- ✓整数推断 int / int64,小数推断 float64
- ✓对象数组合并字段生成 struct
- ✓结果可复制或下载 .go
使用教程
根据接口响应快速创建 DTO:把接口返回的样例粘进来,直接得到 Go struct 初稿,省去手写字段和 tag。 生成嵌套结构体:开启嵌套对象生成开关,多层结构会自动拆成多个 struct。 比较命名策略效果:切换 camelCase 和 PascalCase,看哪种更符合项目风格再复制。 准备测试代码类型:为测试数据快速定义结构体,专注写业务逻辑。 对接第三方 API:拿到对方文档里的 JSON 样例,先生成 struct 再封装客户端。
常见问题
Q:顶层必须是对象吗?
A:是,顶层为 JSON 对象的样例才支持,顶层为数组的请先包一层。
Q:会生成 package 和 import 吗?
A:不会,只生成 struct 定义,package 和 import 需手动添加。
Q:支持 omitempty、指针或 validator 标签吗?
A:不支持,只生成 json tag,其它标签需手动补充。
Q:空数组或混合数组怎么处理?
A:会回退为 `[]interface{}`,需要时手动替换成具体类型。
Q:怎么判断字段是否可选?
A:工具不判断可选性,所有字段都会生成,需要 optional 的自行调整。
Q:支持嵌套对象吗?
A:支持,可选择生成嵌套 struct 或使用 interface。
Q:数据会上传服务器吗?
A:不会,生成在浏览器本地完成。