將結構體轉換為映射在各種場景中都很有用,例如將資料編組為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中文網其他相關文章!