Menghuraikan JSON Kompleks dengan Go Unmarshal
Dalam Go, pakej pengekodan/json menyediakan fungsi json.Unmarshal untuk menghuraikan data JSON. Data ini boleh dibongkar ke dalam struktur yang dipratentukan atau jenis antara muka{} untuk mengulang struktur data yang tidak dijangka. Walau bagaimanapun, menghuraikan JSON kompleks boleh mencabar.
Sebagai contoh, pertimbangkan JSON berikut:
{ "k1": "v1", "k2": "v2", "k3": 10, "result": [ [ ["v4", "v5", {"k11": "v11", "k22": "v22"}], ... ["v4", "v5", {"k33": "v33", "k44": "v44"}] ], "v3" ] }
Untuk menghuraikan JSON ini menggunakan json.Unmarshal, kita boleh mencipta pembolehubah{} antara muka dan simpan hasil yang dihuraikan di dalamnya:
type MyData struct { v1 string v2 string v3 int result [][]MySubData result2 string } type MySubData struct { v1 string v2 string result map[string]string } var f interface{} err := json.Unmarshal(b, &f)
Selepas menyahmarshaling, pembolehubah f akan menjadi peta dengan kekunci rentetan dan nilai antara muka kosong. Untuk mengakses data ini, kami menggunakan penegasan jenis untuk menukar f ke dalam peta[rentetan]antara muka{} dan berulang melaluinya:
m := f.(map[string]interface{}) for k, v := range m { switch vv := v.(type) { case string: // Handle string values case int: // Handle integer values case []interface{}: // Handle array values default: // Handle unknown types } }
Pendekatan ini membolehkan kami bekerja dengan struktur data JSON yang tidak dijangka sambil mengekalkan jenis keselamatan. Untuk butiran lanjut, rujuk artikel asal tentang JSON dan Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Struktur JSON Kompleks Dengan Berkesan Menggunakan `json.Unmarshal` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!