JSON 转 Go Struct
将 JSON 数据转换为 Go 结构体,基于 quicktype 引擎,自动推断类型与 json tag,支持嵌套结构。
使用说明
功能介绍
本工具基于 quicktype 引擎将 JSON 数据自动转换为 Go 结构体定义,支持类型推断(string/bool/int64/float64/[]T/嵌套 struct)、json tag 生成、嵌套 struct 拆分以及 Go 关键字冲突自动转义。生成的代码可直接用于 encoding/json 序列化与反序列化场景。
操作步骤
在左侧文本框输入或粘贴 JSON 数据,设置根结构体名称(默认 Root)、包名(默认 main)、字段 tag(默认 json,可填 json,yaml 等组合),按需勾选「仅类型」控制是否生成转换函数、勾选「omitempty 标签」为非必填字段添加 ,omitempty,右侧将实时生成 Go 代码,点击「复制结果」一键复制到剪贴板。也可点击「加载示例」快速体验。
配置选项
- 结构体名称:生成的根类型名称,默认 Root。
- 包名:生成代码的 package 声明,默认 main。
- 字段 tag:结构体字段的 tag 列表,默认 json,可填 json,yaml 等多个 tag。
- 仅类型:勾选后仅输出类型定义,不生成 MarshalJSON/UnmarshalJSON 等转换函数。
- omitempty 标签:勾选后非必填字段会加上 ,omitempty,序列化时忽略零值。
注意事项
数字类型统一推断为 float64,若值为整数则推断为 int64;null 值默认推断为 interface{}。Go 关键字(type、var、func、map、chan、interface、struct、range、import、package 等)作为字段名时会自动转义处理。转换由 quicktype 引擎驱动,结构体字段命名与 tag 生成遵循 quicktype 默认规则。建议复制后使用 gofmt 格式化代码以统一字段对齐。