Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan Ralat Penghuraian JSON 'Tidak Boleh Unmarshal String ke Nilai Go Type Int64'?

Bagaimana untuk Menyelesaikan Ralat Penghuraian JSON 'Tidak Boleh Unmarshal String ke Nilai Go Type Int64'?

Linda Hamilton
Lepaskan: 2024-11-26 14:56:08
asal
490 orang telah melayarinya

How to Resolve

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"`
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan