Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Betulkan 'json: tidak boleh unmarshal tatasusunan ke nilai Go jenis main.Structure'?

Bagaimana untuk Betulkan 'json: tidak boleh unmarshal tatasusunan ke nilai Go jenis main.Structure'?

Susan Sarandon
Lepaskan: 2024-11-29 01:46:09
asal
1005 orang telah melayarinya

How to Fix

Cara Unmarshal JSON Array ke dalam Go Struct

Apabila cuba menghuraikan data JSON daripada API, pengguna mungkin menghadapi ralat: "panic: json: cannot unmarshal tatasusunan ke dalam nilai Go jenis utama.Struktur."

Coretan Kod dengan Isu

type Structure struct {
     stuff []interface{}
}

... // more code

decoded := &Structure{}
err = json.Unmarshal(body, decoded)
Salin selepas log masuk

Masalah

Punca isu ialah percubaan untuk menyahmarshal tatasusunan JSON ke dalam struct Go.

Penyelesaian

Pilihan 1: Unmarshal hingga sekeping

Daripada menggunakan struct, nyahmarshal tatasusunan JSON ke sekeping antara muka{}:

var data []interface{}
err = json.Unmarshal(body, &data)
Salin selepas log masuk

Pilihan 2: Nyahmarshal kepada sekeping struct

Jika data JSON mempunyai struktur khusus, pertimbangkan untuk mencipta kepingan struct yang sepadan dengan data tindak balas:

type Tick struct {...}
var data []Tick
err = json.Unmarshal(body, &data)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Betulkan 'json: tidak boleh unmarshal tatasusunan ke nilai Go jenis main.Structure'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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