Pemetaan JSON Dinamik dalam Go Menggunakan Peta
Dalam Go, memetakan respons JSON dinamik dengan kekunci yang tidak dapat diramalkan boleh menjadi satu cabaran. Walau bagaimanapun, menggunakan peta menawarkan penyelesaian yang fleksibel.
Pertimbangkan tindak balas JSON berikut, dengan kekunci berbeza:
{ "items": [ {"name": "thing", "image_urls": { "50x100": [{ "url": "http://site.com/images/1/50x100.jpg", "width": 50, "height": 100 }, { "url": "http://site.com/images/2/50x100.jpg", "width": 50, "height": 100 }], "200x300": [{ "url": "http://site.com/images/1/200x300.jpg", "width": 200, "height": 300 }], "400x520": [{ "url": "http://site.com/images/1/400x520.jpg", "width": 400, "height": 520 }] } } ] }
Untuk menangkap sifat dinamik ini, cipta struct berasaskan peta. Peta dalam Go membenarkan kunci dan nilai sewenang-wenangnya, menjadikannya sesuai untuk senario ini.
type Items map[string][]ImageURL
Di sini, struktur Item ialah peta dengan kekunci rentetan (mewakili kekunci JSON yang berbeza-beza) dan nilai jenis [] ImageURL.
Untuk menggunakan struct ini, tentukan struct ImageURL untuk imej individu entri:
type ImageURL struct { URL string Width int Height int }
Kini, anda boleh menyahmarshal respons JSON terus ke dalam struct Item:
err := json.Unmarshal(data, &items) if err != nil { // Handle error }
Pendekatan ini menyediakan pemetaan fleksibel untuk respons JSON dinamik, membolehkan anda menangkap data tanpa perlu mentakrifkan semua kunci yang mungkin.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Respons JSON Dinamik dengan Kekunci Tidak Dapat Diramalkan dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!