首頁 >後端開發 >Golang >如何將 JSON 資料部分解組到 Go Map ?

如何將 JSON 資料部分解組到 Go Map ?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-22 15:51:11469瀏覽

How to Partially Unmarshal JSON Data into a Go Map?

如何在Go 中將JSON 部分解組到映射中

在Go 中解組JSON 資料可能很簡單,但在處理嵌套時會出現挑戰其鍵指示資料類型的物件。為了解決這個問題,您可以利用“encoding/json”套件。

在提供的程式碼中,您嘗試將 JSON 資料對應到 map[string][]byte,從而有效地將其轉換為金鑰- 字串和原始 JSON 的值對。但是,json.MapObject 函數不存在,使得該解決方案不可行。

相反,您可以利用 map[string]json.RawMessage 來實現您的目標。 RawMessage 是一種不透明類型,保存未解析的 JSON。使用這種方法,下面的程式碼將提供的 JSON 資料解組到 objmap 變數中:

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)

現在,您可以存取 objmap 中的各個鍵值對以進一步解析 JSON 資料。例如,要解析「sendMsg」值:

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

同樣,您可以將「say」值解析為字串:

var str string
err = json.Unmarshal(objmap["say"], &str)

注意: 請記住導出sendMsg 結構中的變數以啟用正確的解組。例如:

type sendMsg struct {
    User string
    Msg  string
}

您可以在 https://play.golang.org/p/OrIjvqIsi4-.

找到一個工作範例。

以上是如何將 JSON 資料部分解組到 Go Map ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn