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

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

Mary-Kate Olsen
發布: 2024-12-26 04:28:09
原創
293 人瀏覽過

How Can I Partially Unmarshal JSON into a Go Map?

在Go 中將JSON 部分解組為Map

在Go 中,當資料使用key 包裝在物件中時,可以將JSON 資料部分解組為Map -值對。這樣可以輕鬆識別每個鍵所保存的值的類型。

實作

要實現此目的,請使用encoding/json 套件並將其解組為map[string]json.RawMessage。 json.RawMessage 類型在進一步解析之前捕獲底層 JSON 資料。

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
登入後複製

進一步解析

一旦獲得映射,您就可以根據其值繼續解析每個鍵的值已知類型。

對於範例JSON:

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}
登入後複製

您可以解析sendMsg 並如下所示:

type sendMsg struct {
    User string
    Msg  string
}

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

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中文網其他相關文章!

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