Mengatasi Ralat: "operasi tidak sah: d["data"] (antara muka jenis {} tidak menyokong pengindeksan)"
ditemui semasa mengakses data JSON bersarang di Golang.
Apabila bekerja dengan respons JSON dinamik, adalah perkara biasa untuk menghadapi ralat, "operasi tidak sah:
Kepada selesaikan perkara ini, anda perlu terlebih dahulu memastikan pembolehubah d ditegaskan jenis sebagai peta[rentetan]antara muka{}, seperti yang dilihat di bawah:
<code class="go">test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]</code>
Dengan membuat penegasan ini, anda secara khusus menyatakan bahawa d adalah daripada jenis peta[rentetan]antara muka{}, membolehkan anda mengakses kekuncinya. Selepas itu, anda boleh mengakses "data" dan mendapatkan semula sifat "jenis" daripada peta bersarang.
Sebagai pendekatan alternatif, anda juga boleh mengisytiharkan d sebagai peta[rentetan]antara muka{} secara terus:
<code class="go">var d map[string]interface{} json.NewDecoder(response.Body).Decode(&d) test := d["data"].(map[string]interface{})["type"]</code>
Dengan berbuat demikian, anda menghapuskan keperluan untuk penegasan jenis pertama.
Untuk membantu dalam operasi ini, pertimbangkan untuk menggunakan perpustakaan github.com/icza/dyno, yang pakar dalam mengendalikan dinamik objek dan menyediakan kaedah yang mudah untuk menavigasi dan memanipulasi data JSON.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan \'operasi tidak sah: d[\\\'data\\\'] (antara muka jenis {} tidak menyokong pengindeksan)\' Ralat dalam Golang Apabila Mengakses Data JSON Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!