粘贴JSON数据,一键生成Go结构体代码,支持嵌套和omitempty标签。纯本地运行,数据不上传,保护隐私。
Go语言(Golang)以其简洁高效的特性在后端开发和云原生领域广受欢迎。在Go中处理JSON数据时,需要先定义对应的结构体(struct),然后才能序列化和反序列化。手动根据JSON写结构体不仅费时,还容易出错。JSON转Go结构体工具可以自动生成Go struct定义,大大提升开发效率。
📋 JSON转Go结构体转换公式
转换规则:string -> string,number -> float64(或int),boolean -> bool,array -> []Type切片,object -> struct嵌套结构体,null -> *Type指针类型。嵌套对象自动递归生成匿名struct,数组元素类型取首元素推断。字段名自动转为大驼峰命名(如user_name -> UserName),并添加json tag保留原始字段名。
📋 JSON类型与Go类型对照表
| JSON类型 | Go类型 | 说明 |
|---|---|---|
| string | string | UTF-8编码 |
| number | float64 | 默认浮点,可改int |
| boolean | bool | true/false |
| array | []Type | 切片类型 |
| object | struct | 嵌套结构体 |
| null | *Type | 指针类型 |
📋 JSON转Go结构体规则
JSON Type -> Go Type: string->string, number->float64, boolean->bool, array->[]Type, object->struct, null->*Type(pointer)
所有字段名自动转为PascalCase(首字母大写)以符合Go导出规则。json tag保留原始JSON字段名。嵌套对象生成嵌套struct定义。可选字段建议使用指针类型或添加omitempty标签。
后端开发对接第三方API时,对方返回的JSON结构复杂,手动写struct要花半小时,用工具10秒搞定。写单元测试构造Mock数据时,需要先定义结构体,直接用JSON生成最快捷。学习Go语言时,理解JSON和struct的映射关系,用工具可以直观看到对应规则。
将JSON数据粘贴到左侧输入框,在选项中设置结构体名称、是否启用omitempty、是否使用指针类型,点击「转换」按钮,右侧就会生成完整的Go结构体代码。生成的代码可以直接复制到你的Go项目中使用。对于嵌套的JSON对象,工具会自动生成子结构体,并按层级命名。
omitempty表示当字段为零值(空字符串、0、nil等)时,序列化JSON会省略该字段,减少冗余数据传输,常用于API响应和配置序列化。
Go语言中只有大写开头的字段才是导出的公开字段,json包才能通过反射读取。小写开头的字段会被忽略,这是Go的访问控制规则。
JSON数组会自动转为Go的切片类型,例如字符串数组转成[]string。如果数组元素是对象,会生成对应的嵌套结构体,保持层级关系。
默认生成对应类型的零值。如果业务需要区分null和零值,可以使用指针类型,null时指针为nil,零值时指针指向具体值。
工具会自动识别嵌套对象并生成对应的嵌套结构体。对于数组类型会生成 []Type 切片。如果JSON中有不确定类型的字段(如可能是string或number),建议手动检查并将字段类型改为 interface{}。对于可选字段,可在json tag中添加 omitempty 标签。