Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Membuka Separa JSON ke dalam Peta Go?

Bagaimanakah Saya Boleh Membuka Separa JSON ke dalam Peta Go?

Mary-Kate Olsen
Lepaskan: 2024-12-26 04:28:09
asal
349 orang telah melayarinya

How Can I Partially Unmarshal JSON into a Go Map?

Sebahagian JSON Unmarshal menjadi Peta dalam Go

Dalam Go, adalah mungkin untuk menyahmarshal sebahagian data JSON ke dalam peta apabila data itu dibalut dalam objek dengan kunci- pasangan nilai. Ini membolehkan pengecaman mudah jenis nilai yang dipegang oleh setiap kunci.

Pelaksanaan

Untuk mencapai ini, gunakan pakej pengekodan/json dan unmarshal ke dalam peta[string]json.RawMessage. Jenis json.RawMessage menangkap data JSON yang mendasari sebelum menghuraikan selanjutnya.

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
Salin selepas log masuk

Penghuraian Selanjutnya

Setelah peta diperoleh, anda boleh meneruskan untuk menghuraikan nilai setiap kunci mengikutnya jenis yang diketahui.

Untuk contoh JSON:

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}
Salin selepas log masuk

Anda boleh menghuraikan sendMsg dan sebut seperti berikut:

type sendMsg struct {
    User string
    Msg  string
}

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

var str string
err = json.Unmarshal(objmap["say"], &str)
Salin selepas log masuk

Mengeksport Pembolehubah

Perhatikan bahawa pembolehubah dalam struct sendMsg mesti dieksport (iaitu, huruf besar) untuk unmarshaling yang betul, seperti yang ditunjukkan:

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

Contoh

Lihat contoh yang berfungsi di sini: https://play.golang.org/p/OrIjvqIsi4-

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuka Separa JSON ke dalam Peta Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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