Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshal Data JSON ke dalam Struktur Data Tersuai dalam Go?

Bagaimana untuk Menyahmarshal Data JSON ke dalam Struktur Data Tersuai dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-06 14:35:02795semak imbas

How to Unmarshal JSON Data into a Custom Data Structure in Go?

Menyahmarshal Data JSON ke dalam Struktur Data Tersuai

Dalam Go, selalunya perlu untuk menyahmarshal data JSON ke dalam struktur data tertentu. Ini boleh dicapai dengan mentakrifkan jenis tersuai dan melaksanakan antara muka json.Unmarshaler.

Pernyataan Masalah

Andaikan kami mempunyai data JSON dengan dua tatasusunan maklumat pesanan: Tanya dan Bida. Kami ingin menyahmarshal data ini menjadi struct dengan dua medan: Asks dan Bid, di mana setiap medan adalah sekeping struct Order.

Jenis Tersuai dan Pelaksanaan Unmarshaler

Untuk mencipta struktur data yang kami kehendaki, kami mentakrifkan jenis tersuai yang dipanggil Pesanan:

<code class="go">type Order struct {
    Price float64
    Volume float64
}</code>

Seterusnya, kami melaksanakan antara muka json.Unmarshaler untuk jenis Pesanan. Ini membolehkan kami menentukan cara data JSON harus dihuraikan ke dalam struktur tersuai kami:

<code class="go">func (o *Order) UnmarshalJSON(data []byte) error {
    var v [2]float64
    if err := json.Unmarshal(data, &v); err != nil {
        return err
    }
    o.Price = v[0]
    o.Volume = v[1]
    return nil
}</code>

Pelaksanaan ini menjangkakan data JSON untuk Pesanan menjadi tatasusunan dua apungan, yang mewakili harga dan volum.

Menyahmarshal Data JSON

Dengan jenis tersuai kami dan pelaksanaan UnmarshalJSON dalam di tempat, kami kini boleh menyahmarshal data JSON seperti berikut:

<code class="go">b := []byte(`{"Asks": [[21, 1], [22, 1]] ,"Bids": [[20, 1], [19, 1]]}`)
m := new(Message)
if err := json.Unmarshal(b, &m); err != nil {
    // handle error
}

fmt.Println(m.Asks[0].Price) // 21</code>

Dengan melaksanakan antara muka json.Unmarshaler, kami telah mencapai matlamat kami untuk menyahmarshal data JSON ke dalam struktur data tersuai yang mewakili susunan dengan lebih tepat maklumat.

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Data JSON ke dalam Struktur Data Tersuai dalam Go?. 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