全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Go 中嵌套结构体 JSON 序列化失败的解决方案

go 的 `json.marshal` 只能序列化导出(首字母大写)字段;未导出字段(小写开头)会被忽略,导致序列化结果为空对象 `{}`。

在 Go 语言中,JSON 序列化依赖于反射机制,而反射仅能访问导出(exported)字段——即字段名以大写字母开头的成员。你代码中的 Configitem 和 GuiConfig 结构体所有字段均以小写字母开头(如 local_address、configs),因此 json.Marshal 无法读取它们的值,最终输出空 JSON 对象 {}。

✅ 正确做法是将结构体字段改为导出字段,并可选地通过 json 标签控制键名:

type Configitem struct {
    LocalAddress string `json:"local_address"`
    LocalPort    int    `json:"local_port"`
    Method       string `json:"method"`
    Password     string `json:"password"`
    Server       string `json:"server"`
    ServerPort   string `json:"server_port"`
    Timeout      int    `json:"timeout"`
}

type GuiConfig struct {
    Configs []*Configitem `json:"configs"`
    Index   int           `json:"index"`
}

修改后,原 main 函数无需改动,即可正确输出:

{"configs":[{"local_address":"eouoeu","local_port":111,"method":"eoeoue","password":"ouoeu","server":"oeuoeu","server_port":"qoeueo","timeout":3333}],"index":1}

⚠️ 注意事项:

  • 字段名大小写决定是否可被 encoding/json 访问,与 json 标签无关;
  • 若因封装需求必须保留私有字段,可手动实现 json.Marshaler 接口,自定义序列化逻辑(需谨慎维护一致性);
  • 建议统一使用驼峰命名 + json 标签,兼顾 Go 风格与 API 兼容性(如 LocalAddress → "local_address")。

总结:Go 的 JSON 序列化遵循严格的可见性规则——只有导出字段才能被序列化。修正字段首字母大小写是最简单、标准且推荐的解决方式。


# word  # js  # git  # json  # go  # ai  # igs  # 封装  # 结构体  # 接口  # 对象  # 序列化  # 首字母  # 字段名  # 自定义  # 可选  # 最简单  # 仅能  # 均以  # 为空  # 若因 


相关文章: 如何通过虚拟主机快速搭建个人网站?  建站之星CMS五站合一模板配置与SEO优化指南  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  南宁网站建设制作定制,南宁网站建设可以定制吗?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何快速完成中国万网建站详细流程?  ,交易猫的商品怎么发布到网站上去?  如何选择可靠的免备案建站服务器?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在景安服务器上快速搭建个人网站?  建站之星导航菜单设置与功能模块配置全攻略  建站10G流量真的够用吗?如何应对访问高峰?  如何选择最佳自助建站系统?快速指南解析优劣  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  潮流网站制作头像软件下载,适合母子的网名有哪些?  Android自定义控件实现温度旋转按钮效果  网页设计与网站制作内容,怎样注册网站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何确认建站备案号应放置的具体位置?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何撰写建站申请书?关键要点有哪些?  韩国服务器如何优化跨境访问实现高效连接?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  深入理解Android中的xmlns:tools属性  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  已有域名能否直接搭建网站?  如何快速搭建二级域名独立网站?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何使用Golang安装API文档生成工具_快速生成接口文档  seo网站制作优化,网站SEO优化步骤有哪些?  全景视频制作网站有哪些,全景图怎么做成网页?  建站之星伪静态规则如何设置?  建站之星在线客服如何快速接入解答?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何选择高性价比服务器搭建个人网站?  如何通过二级域名建站提升品牌影响力?  如何快速辨别茅台真假?关键步骤解析  如何登录建站主机?访问步骤全解析  如何快速生成凡客建站的专业级图册?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何高效利用200m空间完成建站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何解决ASP生成WAP建站中文乱码问题?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  建站之星如何配置系统实现高效建站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站之星安装后如何配置SEO及设计样式?  如何设计高效校园网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。