将结构体转换为映射在各种场景中都很有用,例如将数据编组为 JSON 或与动态交互系统。本问题探讨了如何利用标准库和第三方包在 Go 中实现此转换。
该问题提供了使用 Reflect 包的原始实现:
func ConvertToMap(model interface{}) bson.M { // ... Implementation }
但是,原始实现严重依赖反射,这会影响性能并且不支持自定义字段等功能
接受的答案引入了 structs 包,这是一个方便的第三方解决方案,提供从结构到映射的强大而高效的转换:
import "github.com/fatih/structs" type Server struct { Name string ID int32 Enabled bool } // Convert to a map m := structs.Map(&Server{ Name: "gopher", ID: 123456, Enabled: true, })
structs 包比原来的有几个优点实现:
以上是如何高效地将Go结构体转换为Map?的详细内容。更多信息请关注PHP中文网其他相关文章!