Mengendalikan Respons JSON dengan Kekunci Dinamik di Golang
Apabila menghadapi respons JSON dengan kekunci sewenang-wenangnya, adalah sukar untuk mencipta struct yang sepadan. Satu contoh sedemikian ialah respons JSON yang disediakan yang mengandungi peta bersarang dengan kekunci yang berbeza-beza yang mewakili saiz imej.
Untuk menangani isu ini, pertimbangkan untuk menggunakan struktur data berasaskan peta. Di Golang, peta ialah koleksi pasangan nilai kunci dengan kekuncinya adalah rentetan.
Penyelesaian:
Tentukan struct untuk mewakili kekunci "Item" luar :
type Items struct { Name string `json:"name"` Images map[string][]ImageUrl `json:"image_urls"` }
Di sini, medan "image_urls" diisytiharkan sebagai peta dengan kuncinya adalah rentetan (mewakili saiz imej) dan nilai adalah kepingan struct ImageUrl.
Struktur ImageUrl:
type ImageUrl struct { Url string `json:"url"` Width, Height int `json:"width,height"` }
Struktur ini mewakili URL imej individu dan dimensinya.
Penggunaan:
Untuk nyahmarshal JSON ke dalam struct Items, gunakan:
var items Items json.Unmarshal(jsonData, &items)
Faedah Menggunakan Peta:
Atas ialah kandungan terperinci Bagaimana Mengendalikan Respons JSON dengan Kekunci Dinamik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!