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.
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)
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" }
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)
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 }
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!