Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membongkar Separa Data JSON ke dalam Peta Go?

Bagaimana untuk Membongkar Separa Data JSON ke dalam Peta Go?

Mary-Kate Olsen
Lepaskan: 2024-12-22 15:51:11
asal
466 orang telah melayarinya

How to Partially Unmarshal JSON Data into a Go Map?

Cara Menyahmarshal Separa JSON ke dalam Peta dalam Go

Menyahmarshal data JSON dalam Go boleh menjadi mudah, tetapi cabaran timbul apabila berurusan dengan nested objek yang kuncinya menunjukkan jenis data. Untuk menangani perkara ini, anda boleh memanfaatkan pakej "pengekodan/json".

Dalam kod yang disediakan, anda cuba untuk memetakan data JSON ke dalam peta[rentetan][]bait, dengan berkesan menukarnya menjadi kunci -nilai pasangan rentetan dan JSON mentah. Walau bagaimanapun, fungsi json.MapObject tidak wujud, menjadikan penyelesaian ini tidak dapat dilaksanakan.

Sebaliknya, anda boleh menggunakan map[string]json.RawMessage untuk mencapai matlamat anda. RawMessage ialah jenis legap yang memegang JSON yang tidak dihuraikan. Menggunakan pendekatan ini, kod di bawah menyahmarshal data JSON yang disediakan ke dalam pembolehubah objmap:

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

Kini, anda boleh mengakses pasangan nilai kunci individu dalam objmap untuk menghuraikan data JSON dengan lebih lanjut. Contohnya, untuk menghuraikan nilai "sendMsg":

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

Begitu juga, anda boleh menghuraikan nilai "say" sebagai rentetan:

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

Nota: Ingat untuk mengeksport pembolehubah dalam struct sendMsg anda untuk membolehkan unmarshalling yang betul. Contohnya:

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

Anda boleh mendapatkan contoh yang berkesan di https://play.golang.org/p/OrIjvqIsi4-.

Atas ialah kandungan terperinci Bagaimana untuk Membongkar Separa Data JSON ke dalam Peta 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