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)
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)
Begitu juga, anda boleh menghuraikan nilai "say" sebagai rentetan:
var str string err = json.Unmarshal(objmap["say"], &str)
Nota: Ingat untuk mengeksport pembolehubah dalam struct sendMsg anda untuk membolehkan unmarshalling yang betul. Contohnya:
type sendMsg struct { User string Msg string }
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!