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
Patricia Arquetteasal
2024-12-02 00:44:13986semak imbas

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

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)
  • 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
}

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!

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