Menyahmarshaling Tatasusunan JSON dengan Jenis Nilai Campuran
Menyahmarshall array JSON yang mengandungi nilai pelbagai jenis boleh menimbulkan cabaran dalam Go kerana keperluan untuk definisi jenis eksplisit dalam tatasusunan Go.
Kes Kajian:
Pertimbangkan contoh JSON yang tidak sah berikut:
["NewYork", 123]
Percubaan untuk menyahkod tatasusunan ini ke dalam tatasusunan Go akan gagal kerana tatasusunan Go memerlukan jenis tetap, iaitu tidak diketahui dalam kes ini.
Penyelesaian:
Untuk mengatasi ini pengehadan, Go menyediakan jenis antara muka{}, yang membenarkan penyimpanan nilai apa-apa jenis. Dengan menggunakan antara muka{}, adalah mungkin untuk menyahmarshal tatasusunan JSON yang mengandungi jenis nilai campuran, seperti yang ditunjukkan di bawah:
const j = `{"NYC": ["NewYork", 123]}` type UntypedJson map[string][]interface{} func main() { ut := UntypedJson{} fmt.Println(json.Unmarshal([]byte(j), &ut)) fmt.Printf("%#v", ut) }
Dalam contoh ini, kami mentakrifkan jenis tersuai UntypedJson sebagai peta kunci rentetan kepada kepingan antara muka{}. Tatasusunan JSON kemudiannya dipisahkan ke dalam contoh UntypedJson. Pernyataan fmt.Printf memaparkan data yang tidak dikawal, yang mengandungi nilai bercampur daripada tatasusunan JSON.
Dengan menggunakan jenis antara muka{}, ia menjadi mungkin untuk menyahmarshal tatasusunan JSON yang mengandungi nilai pelbagai jenis, memberikan lebih banyak penyelesaian yang fleksibel dan serba boleh untuk senario data yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahmarshal Tatasusunan JSON dengan Jenis Data Campuran dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!