Unmarshaling Arrays and Struct Type
Apabila cuba menghuraikan data JSON ke dalam struct, adalah penting untuk memastikan keserasian antara struktur data dan jenis sasaran. Mesej ralat berikut:
panic: json: cannot unmarshal array into Go value of type main.Structure
menunjukkan bahawa aplikasi sedang cuba untuk menyahmarshal tatasusunan daripada JSON ke dalam struct yang menjangkakan jenis yang berbeza.
Untuk menyelesaikan isu ini, pertimbangkan penyelesaian berikut :
Jika data JSON ialah tatasusunan objek, nyahmarsle ia kepada sekeping antara muka{} atau sekeping struct tertentu bergantung pada struktur data JSON anda:
var data []interface{} err = json.Unmarshal(body, &data) // Unmarshal to specific structs: type Tick struct { ID string Name string ... } var data []Tick err = json.Unmarshal(body, &data)
Jika anda perlu mengekalkan struct sedia ada, pertimbangkan untuk mengubah suai jenis medannya untuk menerima tatasusunan:
type Structure struct { stuff [][]interface{} // Change to a slice of slices }
Atas ialah kandungan terperinci Mengapa 'json: cannot unmarshal array into Go of type main.Structure' Berlaku dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!