Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menyahmarshal Objek JSON ke dalam Struktur dengan Peta Slices?
Custom unmarshaling diperlukan untuk menyahkod JSON ke dalam struct dengan peta kepingan. Menggunakan gelagat lalai, peta kekal kosong.
Menggunakan Unmarshaler Tersuai:
Dalam kaedah UnmarshalJSON:
Penyelesaian Alternatif (Tidak Menggunakan Peta):
Jika struktur JSON dibetulkan, struct sasaran boleh dilaraskan agar sepadan dengan reka letak JSON tanpa menggunakan peta.
Contoh:
Kod unmarshaling tersuai menggunakan kaedah UnmarshalJSON tersuai:
<code class="go">func (r *OHLC_RESS) UnmarshalJSON(d []byte) error { // Decode keys and values var obj map[string]json.RawMessage if err := json.Unmarshal(d, &obj); err != nil { return err } // Extract "last" field if last, ok := obj["last"]; ok { if err := json.Unmarshal(last, &r.Last); err != nil { return err } delete(obj, "last") } // Decode and assign Pair field r.Pair = make(map[string][]Candles, len(obj)) for key, val := range obj { cc := []Candles{} if err := json.Unmarshal(val, &cc); err != nil { return err } r.Pair[key] = cc } return nil }</code>
Penyelesaian alternatif dengan melaraskan struct:
<code class="go">type OHLC_RESS struct { Pair []Candles `json:"XXBTZUSD"` Last int64 `json:"last"` }</code>
Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Objek JSON ke dalam Struktur dengan Peta Slices?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!