Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengakses Tatasusunan JSON Bersarang di Golang Selepas Unmarshalling?
Mengakses Tatasusunan JSON Bersarang di Golang Selepas Nyahmarshall
Apabila bekerja dengan respons JSON di Golang, anda mungkin menghadapi kesukaran mengakses elemen JSON bersarang tatasusunan. Ini boleh berlaku apabila cuba mengakses elemen tertentu dalam tatasusunan "objek", mengakibatkan ralat seperti "antara muka jenis {} tidak menyokong pengindeksan."
Punca Ralat
Ralat timbul kerana pembolehubah antara muka dalam Go tidak menyokong pengindeksan. Apabila anda menyahkod muatan JSON ke dalam pembolehubah antara muka, modul JSON mewakili tatasusunan sebagai hirisan []antara muka{} dan kamus sebagai peta[rentetan]antaramuka{} peta.
Penyelesaian 1: Menggunakan Penegasan Jenis
Untuk mengakses elemen tertentu dalam tatasusunan "objek", anda boleh menggunakan penegasan jenis untuk menukar pembolehubah antara muka kepada jenis konkrit. Walau bagaimanapun, pendekatan ini memerlukan semakan ralat untuk mengendalikan kes di mana penegasan jenis gagal.
<code class="go">objects := result["objects"].([]interface{}) first := objects[0].(map[string]interface{}) fmt.Println(first["ITEM_ID"])</code>
Penyelesaian 2: Menyahkod ke dalam Struktur
Jika muatan JSON mempunyai format yang diketahui, penyelesaian yang lebih mantap ialah menyahkodnya terus ke dalam struktur tersuai. Ini membolehkan anda menentukan struktur yang diharapkan, menghapuskan keperluan untuk penegasan jenis dan pengendalian ralat.
<code class="go">type Result struct { Query string `json:"query"` Count int `json:"count"` Objects []struct { ItemId string `json:"ITEM_ID"` ProdClassId string `json:"PROD_CLASS_ID"` Available int `json:"AVAILABLE"` } `json:"objects"` } var result Result if err := json.Unmarshal(payload, &result); err != nil { panic(err) } fmt.Println(result.Objects[0].ItemId)</code>
Dengan memilih penyelesaian yang sesuai berdasarkan kes penggunaan tertentu, anda boleh mengakses tatasusunan JSON bersarang dengan lancar di Golang selepas unmarshalling.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Tatasusunan JSON Bersarang di Golang Selepas Unmarshalling?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!