JSON Nested Dynamic Structures Go Decoding
Dalam senario ini, respons JSON mengandungi kunci dinamik dalam objek "sms" bersarang. Kaedah penyahkodan struktur konvensional akan gagal kerana nombor telefon yang tidak diketahui sebagai kunci.
Penyelesaian: Peta dan Pengendalian Kunci Dinamik
Untuk menyahsiri data sedemikian dengan berkesan, struktur data peta bekerja. Kod yang dipinda di bawah memperkenalkan peta[rentetan]SMSPhone untuk memodelkan objek "sms":
type SMSPhone struct { Status string `json:"status"` StatusCode int `json:"status_code"` StatusText string `json:"status_text"` } type SMSSendJSON struct { Status string `json:"status"` StatusCode int `json:"status_code"` Sms map[string]SMSPhone `json:"sms"` Balance float64 `json:"balance"` }
Proses Unmarshaling
Dengan peta ini disediakan, unmarshaling proses kini boleh mengendalikan nombor telefon dinamik dengan betul:
var result SMSSendJSON if err := json.Unmarshal([]byte(src), &result); err != nil { panic(err) }
Contoh Output
Peta hasil akan mengandungi nombor telefon sebagai kunci dan struktur SMSPhone yang berkaitan:
{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
Pendekatan ini membolehkan penyahkodan respons JSON yang cekap dengan struktur bersarang dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod JSON dengan Kekunci Bersarang Dinamik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!