Pengenalan
Data JSON anda mengikut format yang tidak diketahui, memberikan cabaran dalam unmarshalling ia ke dalam struktur GoLang. Artikel ini akan membimbing anda melalui langkah-langkah untuk mengendalikan senario ini dengan berkesan.
Nyahmarshal dengan peta[rentetan]antaramuka{}
Memandangkan anda tidak mengetahui kunci dalam terlebih dahulu, anda boleh menggunakan map[rentetan]antaramuka{} untuk menyahmarshal muatan JSON anda. Ini membolehkan anda menyimpan pasangan nilai kunci sebagai peta tanpa menyatakan jenis nilai.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Ini akan mengeluarkan data JSON sebagai peta rentetan bersarang kepada antara muka, yang boleh berguna untuk memeriksa dan memproses data secara dinamik.
Menggunakan json:"-" Tag
Anda boleh mengecualikan medan tertentu daripada JSON marshaling/unmarshaling menggunakan json:"-" tag. Ini boleh berguna jika anda ingin menyimpan beberapa data peribadi atau mengelakkan rujukan bulat.
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
Dalam contoh ini, medan Gred tidak akan disertakan dalam perwakilan JSON gredData, tetapi ia masih boleh digunakan untuk menyimpan dan mendapatkan semula data JSON.
Kesimpulan
Dengan menggunakan map[rentetan]antara muka{} dan teg json:"-", anda boleh berjaya menyahmarshal data JSON daripada format yang tidak diketahui ke dalam struktur GoLang. Pendekatan ini membolehkan anda mengendalikan struktur JSON yang dinamik dan tidak diketahui dengan elegan.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menyahmarshal Format JSON Tidak Diketahui dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!