Rumah >pembangunan bahagian belakang >Golang >Mengapakah saya mendapat ralat \'penukaran antara muka: antara muka {} ialah []antara muka {}, bukan peta[rentetan]antara muka {}\' semasa menukar antara muka kepada peta?

Mengapakah saya mendapat ralat \'penukaran antara muka: antara muka {} ialah []antara muka {}, bukan peta[rentetan]antara muka {}\' semasa menukar antara muka kepada peta?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 01:48:31385semak imbas

Why am I getting an

Ralat Penukaran Antara Muka: Pemetaan Tidak Sah

Ralat berlaku semasa penghuraian JSON apabila cuba menukar antara muka kepada peta, mengakibatkan mesej "penukaran antara muka: antara muka {} ialah []antara muka {}, bukan peta[rentetan]antara muka {}."

Penjelasan

Ralat menunjuk ke arah ketidakpadanan antara jenis data. Dalam coretan kod yang disediakan, baris berikut mengekstrak hasil daripada senarai hasil organik:

result := fmt.Sprintf("%v", response["organic_results"].(map[string]interface{})["title"])

Andaiannya ialah respons["organic_results"] ialah peta dan nilainya harus dihantar sebagai peta[rentetan ]antara muka{} untuk mengakses nilai tajuk tertentu. Walau bagaimanapun, jenis data sebenar respons["organic_results"] ialah sekeping antara muka ([]antara muka{}), bukan peta.

Penyelesaian

Kepada selesaikan ralat, kod itu hendaklah dibetulkan dengan sewajarnya:

for _, item := range response["organic_results"].([]interface{}) {
    fmt.Sprintf("%v", item.(map[string]interface{})["title"])
}

Di sini, gelung berulang melalui setiap item dalam hirisan []antara muka{} dan setiap item dihantar sebagai peta[rentetan]antara muka{ } untuk mengekstrak nilai tajuk.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'penukaran antara muka: antara muka {} ialah []antara muka {}, bukan peta[rentetan]antara muka {}\' semasa menukar antara muka kepada peta?. 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