Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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

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

Susan Sarandon
Susan Sarandonasal
2024-10-25 11:02:02565semak imbas

Here are a few title options in a question format, catering to the content of your provided article:

**Direct &  Problem-Focused:**

* **How to Unmarshal a Map of Slices in Go When Keys are Dynamic?**
* **Empty Map After Unmarshaling: Why is my Go Struct

Penyusunan Tersuai Struct ke dalam Peta Slices

Penerangan Masalah

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.

Penyelesaian

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!

Kenyataan:
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