Custom unmarshaling diperlukan untuk menyahkod JSON ke dalam struct dengan peta kepingan. Menggunakan gelagat lalai, peta kekal kosong.
Menggunakan Unmarshaler Tersuai:
Dalam UnmarshalJSON kaedah:
Penyelesaian Alternatif (Tidak Menggunakan Peta):
Jika struktur JSON ditetapkan, struct sasaran boleh dilaraskan untuk memadankan reka letak JSON tanpa menggunakan a 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!