Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengendalikan Input Rentetan untuk Medan Int64 dalam JSON Unmarshaling?

Bagaimana untuk Mengendalikan Input Rentetan untuk Medan Int64 dalam JSON Unmarshaling?

Susan Sarandon
Lepaskan: 2024-11-15 03:17:02
asal
277 orang telah melayarinya

How to Handle String Input for Int64 Fields in JSON Unmarshaling?

Mengendalikan Input Rentetan untuk Medan Int64 dalam JSON Unmarshaling

Menyahmarshaling data JSON ke dalam nilai Go kadangkala menghadapi cabaran, terutamanya apabila menghadapi perwakilan rentetan nilai integral. Artikel ini meneroka penyelesaian kepada ralat "json: cannot unmarshal string into Go of type int64" apabila menyahmarshall data JSON dengan medan kamiran berkod rentetan.

Pernyataan Masalah

Pertimbangkan struct Go berikut yang mewakili respons tinjauan:

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

Dalam contoh ini, medan id ditakrifkan sebagai int64. Selepas mensiri tySurvey kepada JSON dan menghantarnya untuk manipulasi pihak klien, klien mengemas kini medan nama. Walau bagaimanapun, ia secara tidak sengaja mengekodkan medan id sebagai rentetan semasa penghantaran data.

Setelah menerima data JSON yang diubah suai pada pelayan, struct tySurvey asal dinyahmarshaled, mengakibatkan ralat: "json: cannot unmarshal string into Nilai pergi jenis int64."

Penyelesaian

Penyelesaian terletak pada mengubah suai teg medan JSON dengan menambahkan ,rentetan pada definisi jenis. Ini mengarahkan json unmarshaler untuk menerima perwakilan rentetan untuk nilai kamiran:

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

Pilihan ,rentetan membenarkan penukaran lancar nilai kamiran berkod rentetan kepada nilai Go yang sepadan semasa penyahmarshalan.

Pertimbangan Tambahan

Apabila menyatakan ,omitempty untuk nilai kamiran berkod rentetan, adalah penting untuk ambil perhatian bahawa rentetan kosong tidak boleh dinyahkodkan. Pengehadan ini memastikan pengabaian hanya digunakan semasa pengekodan.

Kesimpulan

Melampirkan ,rentetan pada teg medan JSON membolehkan pembongkaran nilai integral berkod rentetan dengan mudah dalam Go. Teknik ini memudahkan pengendalian data dan meningkatkan keteguhan kod dengan menampung manipulasi data sisi klien yang mungkin mengubah jenis medan secara tidak sengaja.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Input Rentetan untuk Medan Int64 dalam JSON Unmarshaling?. 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