Bagaimana untuk Mengendalikan \'operasi tidak sah: d[\\\'data\\\'] (antara muka jenis {} tidak menyokong pengindeksan)\' Ralat dalam Golang Apabila Mengakses Data JSON Bersarang?

Susan Sarandon
Lepaskan: 2024-10-26 09:40:02
asal
654 orang telah melayarinya

How to Handle the

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: (antara muka jenis {} tidak menyokong pengindeksan)". Ini berlaku apabila anda cuba mengindeks antara muka, seperti dalam d["data"], yang memerlukan penegasan jenis khusus kepada stor nilai kunci yang sesuai, seperti peta[rentetan]antara muka{}.

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!