Rumah >pembangunan bahagian belakang >Golang >Berikut ialah beberapa pilihan tajuk dalam format soalan, memenuhi kandungan artikel yang anda sediakan: **Langsung & Berfokuskan Masalah:** * **Cara Menyahmarshal Peta Slices dalam Go Apabila Kekunci Dynam
Memahami pembongkaran JSON mungkin mencabar. Artikel ini meneroka isu yang dihadapi semasa membongkar peta dalam Go menggunakan coretan kod berikut:
<code class="go">import ( "encoding/json" "fmt" ) type OHLC_RESS struct { Pair map[string][]Candles Last int64 `json:"last"` } type Candles struct { // ... } func (c *Candles) UnmarshalJSON(d []byte) error { // ... } func main() { // ... }</code>
Setelah menjalankan kod, peta Pair kekal kosong, walaupun medan Last dinyahmarshall dengan betul.
Pilihan 1: Laraskan Definisi Struktur
Penyelesaian paling mudah untuk contoh JSON yang disediakan ialah menghapuskan peta dan menjajarkan definisi struct dengan struktur JSON:
<code class="go">type OHLC_RESS struct { Pair []Candles `json:"XXBTZUSD"` Last int64 `json:"last"` }</code>
Pilihan 2: Laksanakan Custom Unmarshaler
Jika kekunci peta dinamik dan tidak boleh dikod keras dalam teg medan, pelaksanaan tersuai json.Unmarshaler antara muka adalah perlu. Ini boleh dicapai dengan melaksanakan kaedah UnmarshalJSON dalam struktur OHLC_RESS:
<code class="go">func (r *OHLC_RESS) UnmarshalJSON(d []byte) error { // ... }</code>
Pelaksanaan UnmarshalJSON menyahkod kekunci dan nilai JSON secara berasingan, merawat elemen "terakhir" secara berbeza daripada yang lain. Elemen yang selebihnya dibongkar ke dalam peta Pasangan.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk dalam format soalan, memenuhi kandungan artikel yang anda sediakan: **Langsung & Berfokuskan Masalah:** * **Cara Menyahmarshal Peta Slices dalam Go Apabila Kekunci Dynam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!