Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Nilai Null Apabila Menghuraikan JSON int64s dalam Go?
JSON Parsing int64s: Mengendalikan Nilai Null dalam Go
Apabila menghuraikan strim JSON dalam Go, mengendalikan nilai null boleh menjadi satu cabaran, terutamanya apabila berurusan dengan jenis int64. Seperti yang ditunjukkan dalam contoh yang diberikan, percubaan untuk menyahmarshal objek JSON yang mengandungi nilai nol ke dalam medan struct jenis int64 akan mengakibatkan ralat disebabkan oleh jenis yang tidak sepadan.
Menggunakan Penunjuk untuk Mengatasi Null Nilai
Penyelesaian mudah untuk isu ini ialah menggunakan penuding ke int64. Penunjuk boleh menjadi nil, mewakili nilai nol, atau ia boleh menunjuk kepada contoh int64 yang sah dengan nilai yang berkaitan. Pendekatan ini disokong oleh pakej JSON Go.
type World struct { Data *int64 }
Dengan mengubah suai definisi struct di atas untuk menggunakan penuding ke int64, kini kami boleh berjaya menyahmarshal data JSON tanpa menghadapi ralat sebelumnya. *int64 membenarkan penghurai JSON untuk mewakili nilai nol sebagai penunjuk nil.
Memetakan null kepada Nilai Bukan Null
Jika mahu, anda boleh memetakan nilai null ke nilai bukan nol, seperti -1 atau MinValue. Ini boleh dicapai dengan memproses data JSON tersuai selepas menyahmarshaling. Contohnya:
func MapNull(data *int64) int64 { if data == nil { return -1 } return *data }
Dengan menggunakan fungsi MapNull selepas menyahmarshaling, anda boleh menggantikan mana-mana nilai nol dengan perwakilan bukan nol yang dikehendaki.
Kesimpulan
Mengendalikan nilai nol apabila menghuraikan data JSON yang mengandungi jenis int64 dalam Go boleh dicapai dengan menggunakan penunjuk ke int64. Teknik ini membolehkan penghurai JSON mewakili nilai nol dan mengekalkan struktur data asal. Jika perlu, pemprosesan pasca tersuai boleh digunakan untuk memetakan nilai nol kepada perwakilan bukan nol alternatif.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai Null Apabila Menghuraikan JSON int64s dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!