首頁 >後端開發 >Golang >如何將具有意外欄位名稱的 JSON 解組到 Go 結構中?

如何將具有意外欄位名稱的 JSON 解組到 Go 結構中?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 12:29:18755瀏覽

How to Unmarshal JSON with Unexpected Field Names into a Go Struct?

使用未知字段名解組JSON 到結構

問題:

是否可以使用未知字段名解組JSON提前,同時保持給定的結構?

問題:

考慮一個 JSON 回應,其中未知的欄位名稱包裝一個公共結構。此結構必須對應到結構,但欄位名稱會有所不同。

{
    "unknown_field": {
            "known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]],
            "known_field_2": [[11,21,31,41,51]],
            "known_field_3": [[12,22,32,42,52],[14,44,34,44,54]]
        }
}

答案:

是的,可以使用映射來解組此類JSON,如下所示根結構元素,其中鍵是未知字段名,值是已知欄位名的實例結構體。

type mData struct {
    KnownField1 [][5]int `json:"known_field_1"`
    KnownField2 [][5]int `json:"known_field_2"`
    KnownField3 [][5]int `json:"known_field_3"`
}
var data map[string]mData
if err := json.Unmarshal(body, &data); err != nil {
    panic(err)
}

輸出:

map[unknown_field:{[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}]
unknown_field {[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}

以上是如何將具有意外欄位名稱的 JSON 解組到 Go 結構中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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