Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Unmarshal String-encoded Integers dalam Go?

Bagaimana untuk Unmarshal String-encoded Integers dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-12 00:46:03986semak imbas

How to Unmarshal String-encoded Integers in Go?

Menyahmarshal Integer Berekod Rentetan dalam Go

Apabila cuba menyahmarshal JSON dengan nilai rentetan ke dalam medan integer, seseorang mungkin menghadapi ralat: "json: tidak boleh menyahmarshal rentetan ke dalam nilai Go jenis int64." Ini kerana JSON unmarshaling secara lalai menganggap jenis berangka, seperti int64, harus mengandungi aksara berangka.

Isu:
Struktur Go yang mentakrifkan medan int64 sedang menerima JSON dengan yang sepadan medan dikodkan sebagai rentetan. Ketidakpadanan dalam jenis data ini menyebabkan proses unmarshaling gagal.

Penyelesaian:
Penyelesaian yang disyorkan ialah menggunakan teg ",string" dalam tag struct json untuk medan integer . Ini mengarahkan proses unmarshaling untuk menerima nilai rentetan jenis:

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}

Pelaksanaan:
Dengan struct yang diubah suai, data JSON dengan medan id yang dikodkan sebagai rentetan kini boleh berjaya menyahkodkan ke dalam objek Go jenis tySurvey.

Nota:
Adalah penting untuk diingat bahawa menyatakan pengabaian dalam teg tidak akan membenarkan rentetan kosong dinyahkod. omitempty digunakan secara eksklusif untuk tujuan pengekodan.

Atas ialah kandungan terperinci Bagaimana untuk Unmarshal String-encoded Integers dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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