首頁 > 後端開發 > Golang > 如何在 JSON 解組中處理 Int64 欄位的字串輸入?

如何在 JSON 解組中處理 Int64 欄位的字串輸入?

Susan Sarandon
發布: 2024-11-15 03:17:02
原創
277 人瀏覽過

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

在JSON 解組中處理Int64 欄位的字串輸入

將JSON 資料解組為Go 值有時會遇到挑戰,特別是在遇到以下字串表示形式時積分值。本文探討了在使用字串編碼的整數欄位解組 JSON 資料時出現錯誤「json: 無法將字串解組為 int64 類型的 Go 值」的解決方案。

問題陳述

考慮以下表示調查回應的 Go 結構:

type tySurvey struct {
    Id     int64            `json:"id,omitempty"`
    Name   string           `json:"name,omitempty"`
}
登入後複製

在此範例中,id 欄位定義為 int64。將 tySurvey 序列化為 JSON 並將其傳輸以供客戶端操作後,用戶端會更新名稱欄位。然而,它在資料傳輸過程中無意中將 id 欄位編碼為字串。

在伺服器上接收到修改後的JSON 資料後,原始tySurvey 結構體被解組,導致錯誤:「json: 無法將字串解組為Go value of type int64."

解決方案

解決方案在於透過將,string附加到類型定義來修改 JSON 欄位標籤。這指示 json 解組器接受整數值的字串表示形式:

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}
登入後複製

,string 選項允許在解組期間將字串編碼的整數值無縫轉換為對應的 Go 值。

其他注意事項

為字串編碼的整數值指定 ,omitempty 時,請務必注意空字串無法解碼。此限制可確保僅在編碼期間使用 omitempty。

結論

將 ,string 附加到 JSON 欄位標記可以輕鬆解組 Go 中的字串編碼整數值。該技術透過適應可能無意中更改欄位類型的客戶端資料操作,簡化了資料處理並增強了程式碼的穩健性。

以上是如何在 JSON 解組中處理 Int64 欄位的字串輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板