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}⚠️ 注意事项:
接口,自定义序列化逻辑(需谨慎维护一致性);总结:Go 的 JSON 序列化遵循严格的可见性规则——只有导出字段才能被序列化。修正字段首字母大小写是最简单、标准且推荐的解决方式。
# word
# js
# git
# json
# go
# ai
# igs
# 封装
# 结构体
# 接口
# 对象
# 序列化
# 首字母
# 字段名
# 自定义
# 可选
# 最简单
# 仅能
# 均以
# 为空
# 若因
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
电脑无法识别U盘怎么办 Windows磁盘管理与驱动更新修复识别问题【解决】
Win11怎么制作U盘启动盘_Win11原版系统安装盘制作【详解】
Mac怎么进行语音输入_Mac听写功能设置与使用【教程】
php删除数据怎么加限制_带where条件删除避免全删【指南】
如何诊断并终止卡死的 multiprocessing 子进程
如何使用Golang捕获并记录协程panic_保证主程序稳定运行
Win11如何设置省电模式 Win11开启电池节电功能【优化】
C++如何获取CPU核心数?(std::thread::hardware_concurrency)
Mac如何彻底清理浏览器缓存?(Safari与Chrome)
Win10系统字体模糊怎么办_Windows10高级缩放设置修复
短链接怎么用php还原_从基础原理到代码实现教学【详解】
如何使用Golang写入二进制文件_Golang io Write二进制写入示例
Python装饰器设计思路_功能增强机制说明【指导】
Win10电脑怎么设置休眠快捷键_Windows10电源按钮功能定义
Win11怎么关闭自动调节亮度 Win11禁用内容自适应亮度【设置】
c++的位运算怎么用 与、或、异或、移位操作详解【底层知识】
Win11快速助手怎么用_Win11远程协助连接教程【工具】
c++怎么调用nana库开发GUI_c++ 现代风格窗口组件与事件处理【实战】
Win10如何备份驱动程序_Win10驱动备份步骤【攻略】
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
Win11怎么开启移动热点_Windows11共享网络给手机设置教程
php接口返回数据乱码怎么办_php接口调试编码问题解决【指南】
php增删改查在php8里有什么变化_新特性对curd的影响【指南】
TestNG的testng.xml配置文件怎么写
Python文件和流处理指南_高效读写大体积数据文件
Win11怎么开启远程桌面连接_Windows11系统属性远程设置
Windows任务计划服务异常原因_任务调度失败的处理方案
Win11怎么打开旧版计算器_Win11恢复传统计算器应用【详解】
C++中的协变与逆变是什么?C++函数指针与返回类型详解【类型系统】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Win11怎么设置屏保_Windows 11屏幕保护程序开启与设置【详解】
如何提升Golang JSON序列化性能_Golang JSON编码效率优化方法
Win11怎样安装微信开发者工具_Win11安装开发者工具教程【步骤】
windows 10应用商店区域怎么改_windows 10微软商店切换地区方法
php中$this和::能混用吗_对象与静态作用域冲突解决【方法】
php485能和物联网模块通信吗_php485对接NB-IoT模块实例【说明】
c++获取当前时间戳_c++ time函数使用详解
Win11怎么关闭系统提示音_Windows11声音方案设为无声教程
如何在 Laravel 中通过嵌套关联关系进行 orderBy 排序
Mac怎么设置登录项_Mac管理开机自启动程序【教程】
Python列表推导式与字典推导式教程_简化代码高效写法
Mac如何修改Hosts文件?(本地开发与屏蔽网站)
Win11怎么格式化U盘_Win11系统U盘格式化与文件系统选择【教程】
php转exe用什么工具打包快_高效打包软件推荐【汇总】
Python迭代器生成器进阶教程_节省内存与懒加载实战
Win11无法安装软件怎么办_Win11解除应用安装限制设置【修复】
Windows系统文件被保护机制阻止怎么办_权限不足错误处理方案
Windows10如何更改鼠标图标_Win10鼠标属性指针浏览
php后缀怎么变mp4能播放_让php伪装mp4正常播放的技巧【技巧】
PythonFastAPI项目实战教程_API接口与异步处理实践
2025-12-26
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。