Ralat Penghuraian JSON: "Tidak Boleh Menyahmarshal Rentetan ke Nilai Go Jenis Int64"
Isu:
Apabila cuba menyahmarshal data JSON dengan nilai rentetan yang diberikan kepada medan int64, proses unmarshaling gagal disebabkan oleh ketidakpadanan jenis antara rentetan sumber dan nilai integer yang dijangkakan.
Butiran Masalah:
Struktur Go tersuai mentakrifkan medan int64 menggunakan tag struct JSON untuk petakannya ke harta JSON. Walau bagaimanapun, skrip jQuery mengubah suai objek JSON dan mengekodnya sebagai rentetan dan bukannya integer. Ini membawa kepada rentetan dihantar sebagai ganti nilai int64 yang dijangkakan.
Penyelesaian:
Untuk mengendalikan isu penukaran jenis ini, tambahkan teg ",rentetan" pada medan yang berkaitan . Teg struct yang dikemas kini adalah seperti berikut:
type tySurvey struct { Id int64 `json:"id,string,omitempty"` Name string `json:"name,omitempty"` }
Dengan menyatakan ",string" dalam teg struct JSON, proses unmarshaling akan mengenali bahawa nilai medan boleh menjadi rentetan dan akan cuba menukarnya kepada integer sebelum memberikannya kepada medan int64.
Tambahan Nota:
Adalah penting untuk ambil perhatian bahawa jika nilai rentetan ialah rentetan kosong, ia tidak boleh dinyahkod kerana pilihan omitempty hanya digunakan semasa pengekodan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Penghuraian JSON 'Tidak Boleh Unmarshal String ke Nilai Go Type Int64'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!