JSON 转 Go
JSON to Go Struct
JSON TO GO

JSON 转 Go Struct

粘贴JSON数据,一键生成Go结构体代码,支持嵌套和omitempty标签。纯本地运行,数据不上传,保护隐私。

🔒 100% 本地运行 · 数据不上传服务器 · 安全隐私 · 📋 基于Go语言规范 · 更新时间:2025年

JSON 输入

Go Struct 输出

// 在左侧输入 JSON,自动生成 Go 结构体
示例:

🔗 相关工具推荐

JSON 格式化校验

美化压缩JSON数据

JSON 转 TypeScript

前端接口类型定义

JSON 转 Dart

Flutter开发必备

JSON 转 Python

生成dataclass

📖 JSON转Go结构体工具 使用指南

什么是JSON转Go结构体工具

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类型说明
stringstringUTF-8编码
numberfloat64默认浮点,可改int
booleanbooltrue/false
array[]Type切片类型
objectstruct嵌套结构体
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对象,工具会自动生成子结构体,并按层级命名。

实用技巧

常见问题 FAQ

omitempty标签有什么用?

omitempty表示当字段为零值(空字符串、0、nil等)时,序列化JSON会省略该字段,减少冗余数据传输,常用于API响应和配置序列化。

为什么生成的字段都是大写开头?

Go语言中只有大写开头的字段才是导出的公开字段,json包才能通过反射读取。小写开头的字段会被忽略,这是Go的访问控制规则。

数组类型怎么处理?

JSON数组会自动转为Go的切片类型,例如字符串数组转成[]string。如果数组元素是对象,会生成对应的嵌套结构体,保持层级关系。

null值会生成什么类型?

默认生成对应类型的零值。如果业务需要区分null和零值,可以使用指针类型,null时指针为nil,零值时指针指向具体值。

生成的Go结构体怎么处理嵌套JSON?

工具会自动识别嵌套对象并生成对应的嵌套结构体。对于数组类型会生成 []Type 切片。如果JSON中有不确定类型的字段(如可能是string或number),建议手动检查并将字段类型改为 interface{}。对于可选字段,可在json tag中添加 omitempty 标签。