Senario ini timbul apabila respons JSON mengandungi medan dengan nama yang tidak diketahui atau dinamik. Untuk menangani perkara ini, kami boleh menggunakan gabungan peta dan struct untuk menangkap data.
Kod Diubah Suai:
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) } }
Penjelasan:
Output:
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]]}
Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal JSON dengan Nama Medan Tidak Diketahui ke dalam Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!