Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengelakkan \"operasi tidak sah: antara muka jenis {} tidak menyokong pengindeksan\" Ralat Apabila Menyahkod JSON Bersarang?

Bagaimana untuk Mengelakkan \"operasi tidak sah: antara muka jenis {} tidak menyokong pengindeksan\" Ralat Apabila Menyahkod JSON Bersarang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 17:23:02175semak imbas

How to Avoid

Menyahkod JSON Bersarang dan Mengendalikan Isu Penegasan Jenis

Apabila mendapatkan semula data JSON bersarang, adalah penting untuk mengendalikan penegasan jenis dengan sewajarnya untuk mengelakkan ralat masa jalan. Satu ralat sedemikian ialah "operasi tidak sah: antara muka jenis {} tidak menyokong pengindeksan."

Ralat ini biasanya berlaku apabila anda cuba mengindeks nilai antara muka{} seolah-olah ia peta atau kepingan, seperti dalam contoh berikut:

<code class="go">var d interface{}
json.NewDecoder(response.Body).Decode(&d)
test := d["data"].(map[string]interface{})["type"]</code>

Untuk menyelesaikan isu ini, anda perlu melakukan penegasan jenis tambahan untuk menukar nilai antara muka{} kepada jenis yang dijangkakan. Dalam kes ini, anda akan mula-mula menukar antara muka{} kepada peta[rentetan]antara muka{}, kemudian mengakses medan "data" dan menukarnya kepada peta[rentetan]antara muka{} sebelum akhirnya mengakses medan "jenis".

<code class="go">test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]</code>

Sebagai alternatif, anda boleh mengisytiharkan d sebagai peta jenis[rentetan]antara muka{} secara langsung, menghapuskan keperluan untuk penegasan jenis awal:

<code class="go">var d map[string]interface{}
json.NewDecoder(response.Body).Decode(&d)
test := d["data"].(map[string]interface{})["type"]</code>

Jika anda kerap melakukan penegasan jenis yang serupa, pertimbangkan untuk menggunakan perpustakaan seperti github.com/icza/dyno untuk memudahkan proses.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan \"operasi tidak sah: antara muka jenis {} tidak menyokong pengindeksan\" Ralat Apabila Menyahkod JSON Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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