Data JSON Unmarshal Format Tidak Diketahui
JSON yang disediakan mengikut corak tertentu:
{ SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}], SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}] ... SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}] }
Matlamat: Unmarshal JSON ke dalam struct GoLang untuk dikembalikan sebagai JSON objek.
Penyelesaian:
Pilihan 1: Menggunakan peta[rentetan]antaramuka{}
Memandangkan kekunci JSON adalah tidak diketahui, kita boleh menggunakan peta[rentetan]antara muka{} untuk menyahmarshal muatan.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Pilihan 2: Menggunakan Struct
Jika struct dikehendaki, gunakan tag json:"-" untuk mengabaikan medan semasa JSON marshalling/ unmarshalling.
type GradeData struct { Grades map[string]interface{} `json:"-"` } err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Struktur Data JSON Tidak Diketahui dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!