Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menghuraikan Sebahagian Peta JSON dengan Cekap dalam Go?

Bagaimana untuk Menghuraikan Sebahagian Peta JSON dengan Cekap dalam Go?

Susan Sarandon
Lepaskan: 2024-12-26 07:45:09
asal
260 orang telah melayarinya

How to Efficiently Parse Partially a JSON Map in Go?

Menghuraikan Data JSON ke dalam Peta dalam Go

Pelayan websocket sering menerima data JSON yang dibalut dalam pasangan nilai kunci yang menunjukkan jenis nilai . Walaupun pakej "pengekodan/json" menyediakan keupayaan unmarshalling yang mudah, terdapat keperluan untuk menghuraikan data JSON sebahagiannya ke dalam peta untuk pemprosesan selanjutnya.

Pendekatan Menggunakan peta[rentetan]json.RawMessage

Untuk mencapai pembongkaran separa, seseorang boleh menggunakan peta[rentetan]json.RawMessage. Pendekatan ini membolehkan data JSON dibongkar ke dalam peta, dengan kuncinya ialah nama sifat dan nilainya ialah data JSON yang tidak dihuraikan.

import (
    "encoding/json"
    "fmt"
)

func main() {
    data := []byte(`{"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},"say":"Hello"}`)

    var objmap map[string]json.RawMessage
    err := json.Unmarshal(data, &objmap)
    if err != nil {
        fmt.Printf("Error unmarshaling JSON: %v", err)
        return
    }

    // Unpack Individual Values

    // Parsing sendMsg
    var s sendMsg
    err = json.Unmarshal(objmap["sendMsg"], &s)
    if err != nil {
        fmt.Printf("Error unmarshaling 'sendMsg': %v", err)
        return
    }
    fmt.Println("sendMsg:", s)

    // Parsing say
    var str string
    err = json.Unmarshal(objmap["say"], &str)
    if err != nil {
        fmt.Printf("Error unmarshaling 'say': %v", err)
        return
    }
    fmt.Println("say:", str)
}

type sendMsg struct {
    User string
    Msg  string
}
Salin selepas log masuk

Dalam pendekatan ini, objmap akan mengandungi kunci "sendMsg " dengan nilai yang merupakan data JSON mentah yang mewakili objek sendMsg. Dengan menyahmarshaling data ini lagi ke dalam struktur sendMsg, medan individu (Pengguna dan Msg) boleh diakses.

Nota: Untuk memastikan penyahmarshalan berjaya, ingat untuk mengeksport medan dalam struct sendMsg (iaitu, Pengguna dan Msg).

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Sebahagian Peta JSON dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan