全网整合营销服务商

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

免费咨询热线: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  # 封装  # 结构体  # 接口  # 对象  # 序列化  # 首字母  # 字段名  # 自定义  # 可选  # 最简单  # 仅能  # 均以  # 为空  # 若因 


相关文章: 定制建站流程解析:需求评估与SEO优化功能开发指南  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  在线教育网站制作平台,山西立德教育官网?  相册网站制作软件,图片上的网址怎么复制?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  PHP 500报错的快速解决方法  如何通过万网虚拟主机快速搭建网站?  已有域名如何快速搭建专属网站?  微课制作网站有哪些,微课网怎么进?  音乐网站服务器如何优化API响应速度?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何在新浪SAE免费搭建个人博客?  如何通过虚拟主机快速完成网站搭建?  如何通过免费商城建站系统源码自定义网站主题与功能?  建站DNS解析失败?如何正确配置域名服务器?  如何快速搭建二级域名独立网站?  如何通过cPanel快速搭建网站?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  济南专业网站制作公司,济南信息工程学校怎么样?  如何快速搭建高效WAP手机网站吸引移动用户?  行程制作网站有哪些,第三方机票电子行程单怎么开?  广州商城建站系统开发成本与周期如何控制?  网站制作话术技巧,网站推广做的好怎么话术?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  网站app免费制作软件,能免费看各大网站视频的手机app?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站之星免费版是否永久可用?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何通过云梦建站系统实现SEO快速优化?  制作网站的模板软件,网站怎么建设?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何在搬瓦工VPS快速搭建网站?  学校为何禁止电信移动建设网站?  如何快速生成高效建站系统源代码?  建站主机核心功能解析:服务器选择与网站搭建流程指南  常州企业网站制作公司,全国继续教育网怎么登录?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何在局域网内绑定自建网站域名?  建站之星如何快速解决建站难题?  江苏网站制作公司有哪些,江苏书法考级官方网站?  小型网站建站如何选择虚拟主机?  建站之星免费模板:自助建站系统与智能响应式一键生成  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  实现虚拟支付需哪些建站技术支撑?  用v-html解决Vue.js渲染中html标签不被解析的问题  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的? 

您的项目需求

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