Menyahkod JSON dengan Struktur Pembolehubah
Apabila bekerja dengan data JSON, mungkin sukar untuk menangani struktur data yang berbeza-beza. Dalam kes sedemikian, kaedah konvensional seperti json.Unmarshal() menggunakan struct tetap menjadi tidak praktikal. Berikut ialah penyelesaian untuk senario ini:
Penyelesaian:Unmarshal ke dalam map[string]interface{}
Daripada bergantung pada struct yang telah ditetapkan, kita boleh unmarshal JSON ke dalam jenis peta [rentetan]antara muka{} generik. Ini membolehkan kami mengendalikan data JSON dengan struktur yang berbeza-beza.
Pertimbangkan JSON berikut:
{ "votes": { "option_A": "3" } }
Untuk menambah kunci "kira" pada JSON ini, kami boleh menyahmarshalkannya seperti berikut:
package main import ( "encoding/json" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } raw["count"] = 1 out, err := json.Marshal(raw) if err != nil { panic(err) } println(string(out)) }
Pendekatan ini membolehkan kami mengubah suai struktur JSON dengan mudah tanpa terikat kepada model data tetap. Jenis peta[rentetan]antara muka{} memberikan fleksibiliti dalam mengendalikan struktur JSON dinamik.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menyahkod JSON dengan Struktur Pembolehubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!