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?
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!