Golang JSON 解析问题:重写 UnmarshalJSON 后丢失值
在使用 Golang 处理 JSON 时,重写了结构体的 UnmarshalJSON 方法,却无法获得完整的值。让我们来详细探讨这个问题:
原因:结构体嵌套继承
在 Golang 中,结构体可以通过使用嵌入的方式进行嵌套。当结构体 A 嵌套了结构体 B 时,A 将继承 B 的接口,包括 UnmarshalJSON 方法。
立即学习“go语言免费学习笔记(深入)”;
分析代码
在你提供的代码中,IdArr 结构体匿名嵌套在 A 结构体中。因此,当重写 IdArr 的 UnmarshalJSON 方法时,A 也继承了该方法。这会导致解析 JSON 字符串时,调用的是 A 的重写方法,而该方法只处理 IdArr 部分,忽略了 more 字段。
解决方法
有以下几种解决方法:
其他注意事项
以上就是Golang JSON 解析问题:嵌套结构重写 UnmarshalJSON 后丢失值的解决方法?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号