當 JSON 回應包含具有未知或動態名稱的欄位時,就會出現這種情況。為了解決這個問題,我們可以利用映射和結構體的組合來捕獲資料。
修改後的程式碼:
package main import "fmt" import "encoding/json" var body = []byte(`{ "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]] } }`) 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 func main() { if err := json.Unmarshal(body, &data); err != nil { panic(err) } fmt.Println(data) for k, v := range data { fmt.Println(k, v) } }
解釋:
輸出:
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中文網其他相關文章!