首頁 > 後端開發 > Golang > 主體

如何將 JSON 字串解組為從標量值派生的自訂 Go 類型?

Barbara Streisand
發布: 2024-11-19 12:54:02
原創
297 人瀏覽過

How to Unmarshal JSON Strings into Custom Go Types Derived from Scalar Values?

JSON Unmarshal 如何處理 Go 中從標量派生的值類型?

在 Go 中,標量值通常用來表示簡單資料型別就像整數和字串一樣。從這些標量值派生的自訂類型可能需要在 JSON 解組過程中進行特殊處理,以確保準確映射。

問題陳述

為擴展 a 的自訂類型實作 UnmarshalJSON 方法Go 中的標量整數。目標是將傳入的 JSON 字串自動轉換為此自訂類型的值。

解決方案

要克服UnmarshalJSON 需要結構體的限制,請使用以下步驟:

  1. 使用指針接收器:為UnmarshalJSON 方法使用指標接收器。值接收者在方法返回時遺失變更。
  2. 解組 JSON 文字:解組 JSON 文字以取得純字串,刪除任何 JSON 引用。
  3. 尋找與指派: 利用 Lookup 函式根據解析的字串擷取自訂類型的實例。將此值指派給指標接收器。

範例實作

func (intValue *PersonID) UnmarshalJSON(data []byte) error {
  var s string
  if err := json.Unmarshal(data, &s); err != nil {
    return err
  }
  *intValue = Lookup(s)
  return nil
}
登入後複製

其他注意事項

    其他注意事項
  • 組的JSON 資料之間的一致性。
  • 使用指標以避免遺失解組期間所做的變更。
如果要自訂 JSON 序列化,請考慮自訂 MarshalJSON 方法。

透過實作這些技術,您可以有效地將 JSON 字串解組為從 Go 中的標量值派生的自訂類型。

以上是如何將 JSON 字串解組為從標量值派生的自訂 Go 類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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