Menyahkod JSON dengan Penukaran Jenis daripada String ke Float64
Di Golang, menyahkod rentetan JSON yang mengandungi nombor apungan kadangkala boleh mengakibatkan ralat apabila menggunakan jenis seperti float64. Perkara berikut menyelidiki isu tersebut dan menyediakan penyelesaian.
Pertimbangkan input JSON berikut:
{"name":"Galaxy Nexus", "price":"3460.00"}
Dan jenis Go yang sepadan:
type Product struct { Name string Price float64 }
Menyahmarshall JSON menggunakan pakej json terbina dalam mungkin menghasilkan ralat:
json: cannot unmarshal string into Go value of type float64
Ralat ini berlaku kerana medan harga JSON ialah rentetan, manakala medan Harga Pergi ialah float64. Untuk menyelesaikan masalah ini, maklumkan kepada penterjemah JSON bahawa medan harga ialah float64 berkod rentetan:
type Product struct { Name string Price float64 `json:",string"` }
Dengan menambahkan "rentetan" pada tag json, penterjemah akan menukar harga rentetan secara automatik kepada float64 semasa penyahkodan. Menjalankan kod yang diubah suai kini akan menghasilkan output yang dijangkakan:
{Name:Galaxy Nexus Price:3460}
Dalam kes penukaran jenis diperlukan semasa penyahkodan JSON, menggunakan tag json dengan "rentetan" (atau penentu penukaran jenis lain) menyediakan cara yang mudah dan penyelesaian yang berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat Penukaran String-to-Float64 Apabila Menyahkod JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!