Bilakah json.Unmarshal Mengembalikan Ralat dalam Go?
Apabila memanfaatkan fungsi json.Unmarshal untuk menghuraikan data JSON ke dalam struct Go , seseorang mungkin menghadapi senario di mana fungsi menghasilkan ralat sifar walaupun tidak konsisten dalam format JSON. Memahami keadaan yang mencetuskan ralat dalam json.Unmarshal adalah penting untuk mengendalikan percanggahan data dengan berkesan.
Penyahkod JSON biasanya tidak mengembalikan ralat jika nilai sumber tidak sepadan dengan jangkaan sasaran. Pertimbangkan senario di mana rentetan JSON mengandungi medan bernama "status", tetapi struct sasaran tidak mempunyai medan ini. Dalam kes sedemikian, json.Unmarshal tidak akan membenderakan ralat.
Walau bagaimanapun, json.Unmarshal melaporkan ralat dalam pelbagai situasi lain:
Berikut ialah contoh ilustrasi menggunakan definisi struct yang disediakan:
type A struct { Name string `json:"name"` } var jsonString string = `{ "status": false }` var a A err := json.Unmarshal([]byte(jsonString), &a)
Dalam contoh ini, pembolehubah ralat akan menjadi sifar kerana data JSON tidak mempunyai "nama " medan, yang dijangkakan oleh struct A. Walau bagaimanapun, katakan data JSON telah diubah suai untuk memasukkan medan "nama" dengan nilai tidak sah (cth., nombor):
var jsonString string = `{ "name": 123 }`
Dalam kes ini, json.Unmarshal akan mengembalikan ralat kerana nilai JSON untuk "nama" tidak boleh ditukar kepada rentetan.
Memahami apabila json.Unmarshal mengembalikan ralat adalah penting untuk pengendalian data yang mantap dalam aplikasi Go. Dengan menangani kemungkinan ketidakkonsistenan dan isu sintaks, anda boleh memastikan penghuraian data yang tepat dan boleh dipercayai daripada sumber JSON.
Atas ialah kandungan terperinci Apakah situasi yang menyebabkan json.Unmarshal mengembalikan ralat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!