Rumah > pembangunan bahagian belakang > Golang > Mengapa 'json: cannot unmarshal array into Go of type main.Structure' Berlaku dan Bagaimana Saya Boleh Membetulkannya?

Mengapa 'json: cannot unmarshal array into Go of type main.Structure' Berlaku dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-02 00:44:13
asal
989 orang telah melayarinya

Why Does

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

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 :

  • Unmarshal kepada Slice:

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)
Salin selepas log masuk
  • Ubah suai Struktur:

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

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!

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