首頁 > 後端開發 > Golang > 如何使用 JSON 標籤作為鍵將 Go 結構體轉換為映射?

如何使用 JSON 標籤作為鍵將 Go 結構體轉換為映射?

Linda Hamilton
發布: 2024-12-09 20:54:15
原創
238 人瀏覽過

How to Convert a Go Struct to a Map Using JSON Tags as Keys?

Converting Struct to Map in Golang with JSON Keys

這個問題尋求一種將Golang 結構轉換為映射的方法,在結果映射中維護JSON 標籤作為鍵。最初,使用 Reflect 套件探索反應。

structs 套件 (https://github.com/fatih/structs) 提供了替代解決方案,它提供了處理結構的全面功能:

  • ConvertToMap:將結構體轉換為map
  • ExtractFields:從結構體中獲取字段名稱切片
  • ExtractValues:從結構體中提取字段值切片
  • IsStruct:檢查提供的介面是否為結構體或指向結構體的指標
  • IsInitialized:驗證結構體是否已初始化

structs 套件支援匿名欄位和嵌套結構體,並允許過濾使用欄位標籤的特定欄位。例如:
type Server struct {
    Name    string  `json:"server_name"`
    ID      int32   `json:"server_id"`
    Enabled bool     `json:"is_enabled"`
}

s := &Server{
    Name:    "gopher",
    ID:      123456,
    Enabled: true,
}

// {"server_name": "gopher", "server_id": 123456, "is_enabled": true}
m := structs.Map(s)
登入後複製

在此範例中,json 標籤用作映射鍵,產生結構體的符合 JSON 的映射表示。 structs 套件提供了一個多功能工具來管理結構並將其轉換為映射,從而有效地解決原始請求。

以上是如何使用 JSON 標籤作為鍵將 Go 結構體轉換為映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板