Apabila berurusan dengan data JSON, adalah perkara biasa untuk menemui objek yang mengandungi objek atau tatasusunan bersarang. Mengulangi struktur ini boleh menjadi tugas yang rumit dalam Go.
Dalam contoh yang diberikan, kami mempunyai input JSON dengan berbilang peringkat sarang. Tugasnya adalah untuk mengulangi objek dan mengekstrak pasangan nilai kunci sebagai rentetan.
Pendekatan yang disyorkan ialah menggunakan penegasan jenis dan fungsi rekursif. Fungsi rekursif boleh turun melalui struktur JSON yang kompleks, secara rekursif memanggil dirinya sendiri pada setiap objek atau tatasusunan bersarang.
Berikut ialah contoh fungsi rekursif yang merentasi struktur JSON bersarang dan mencetak pasangan nilai kunci:
func parseMap(m map[string]interface{}) { for key, val := range m { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println(key, ":", val) } } } func parseArray(arr []interface{}) { for i, val := range arr { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println("Index:", i, ":", val) } } }
Dalam contoh ini, fungsi parseMap dipanggil secara rekursif pada peta bersarang, dan Fungsi parseArray dipanggil secara rekursif pada tatasusunan bersarang. Dengan menggunakan penegasan jenis, kami boleh menentukan jenis setiap nilai dan mengendalikannya dengan sewajarnya.
Untuk menjalankan kod, anda boleh menyahmarshal input JSON ke dalam peta menggunakan json .Fungsi unmarshal. Kemudian, panggil fungsi parseMap, lulus peta unmarshalled sebagai hujah. Output akan dicetak, memaparkan pasangan nilai kunci yang diekstrak.
Pendekatan menggunakan penegasan jenis dan fungsi rekursif ini menyediakan cara yang berkaedah dan cekap untuk melintasi dan memeriksa nilai secara bersarang struktur JSON. Dengan memahami struktur data dan menggunakan teknik ini, anda boleh mengekstrak dan memproses pasangan nilai kunci dengan berkesan untuk analisis atau pemprosesan selanjutnya.
Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Objek JSON Bersarang dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!