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

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