免费在线 JSON 转 Go Struct 工具,自动生成结构体定义,支持 json tag 和 omitempty
摘要:免费的 JSON 转 Go Struct 工具,自动生成结构体定义,支持 json tag 和 omitempty,嵌套对象数组,浏览器本地运行。
本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。
下一步
使用指南
把 JSON 响应变成 Go struct 是接 API 的第一步,也是 json tag 与命名最易写飘的一步。本工具从样例推断字段类型与嵌套 struct,可配置命名、json tag 与 omitempty——本地生成,粘进工程后再手调类型与注释。
1. 生成 struct
粘贴覆盖主要字段的样例,选择导出命名与 omitempty,复制代码后改包名与根类型名。先让编译通过,再用真实响应写 Unmarshal 测试。
- 粘贴样例 JSON。
- 配置命名与 omitempty。
- 复制并改包名/根类型。
2. 标签与命名
json tag 必须与线上字段字节级一致;改 Go 字段名不影响协议。omitempty 会跳过 false、0、空字符串——零值有意义时不要滥用。调试阶段具名嵌套比匿名嵌入更清晰。
- tag 与协议对齐。
- 慎用 omitempty。
- 嵌套具名便于排障。
3. 推断局限
样例整数不等于线上从无浮点;样例字符串可能实为 null。可空改指针或 Null 类型;大 ID 用 string。空数组推不出元素类型,需非空样例或手写。
4. 落地工程
用真实 payload 测试;仅严格契约时启用 DisallowUnknownFields;对外暴露稳定 DTO,生成稿可放 internal 再包装。
5. 时间与大数
RFC3339 与 Unix 秒需显式 time.Time 处理;超越 JS 安全整数的 ID 用 string 或 json.Number;键不固定用 map,勿生成上百可选字段。
- 时间布局写进注释。
- ID 宁可变 string。
- 开放集合用 map。
6. 与 TS 生成分工
前端 JSON→TS、后端本页,应对同一份样例或 Schema。长期应 Schema→代码;本页适合尚未建 Schema 的摸索期,避免两端 optional 语义漂移。
常见问题
支持。注意 json tag 必须与线上字段字节级一致,改 Go 字段名不影响协议;omitempty 会跳过 false、0 和空字符串,零值有业务含义的字段要慎用。
支持。嵌套对象与数组会被递归解析,为每个层级生成对应的 struct;调试阶段建议用具名嵌套类型而不是匿名嵌入,排障更清晰。
不一定。样例里是整数不代表线上从不返回浮点;字符串字段可能实际为 null,需要改成指针或 Null 类型;空数组推不出元素类型,要补非空样例或手写。超过 JS 安全整数的大 ID 建议改用 string。
RFC3339 字符串与 Unix 秒需要显式的 time.Time 处理,并把时间布局写进注释;超出安全整数范围的 ID 用 string 或 json.Number;键不固定的对象用 map,不要生成上百个可选字段。
复制后先改包名与根类型名,让编译通过,再用真实响应写 Unmarshal 测试;只在严格契约场景启用 DisallowUnknownFields。前端配套 JSON→TS、后端用本页对着同一份样例生成,长期再转向 Schema→代码。
零成本:不收费、不登录,打开页面粘贴 JSON 即可生成本地结果。
相关工具
相关文章
JSON 大整数精度陷阱:雪花 ID 被静默改写时怎么查
超过 2^53-1 的 JSON 数字经 JSON.parse 会尾部舍入。对照劣质格式化与无损路径,并互链 JWT/Base64 与站内 JSON 工具。
JSON 解析报错 Unexpected token?5 种常见原因和修复方法
JSON 解析报错 Unexpected token?本文总结 5 种最常见的 json 格式错误原因:尾逗号、单引号、未转义字符、BOM 头、注释,逐一给出修复方法和代码示例。
Unexpected token '<' is not valid JSON?接口返回 HTML 而不是 JSON 的 5 种原因
fetch 请求报 SyntaxError: Unexpected token '<' 是因为响应体是 HTML 不是 JSON。覆盖 5 种根因:SPA 路由兜底返回 index.html、登录 302 重定向、网关 502 错误页、baseURL 写错、忘了检查 res.ok,附 curl 排查命令。