首頁  >  文章  >  後端開發  >  如何將 JSON 字串解組為自訂 Go 標量類型?

如何將 JSON 字串解組為自訂 Go 標量類型?

Susan Sarandon
Susan Sarandon原創
2024-11-21 12:58:10325瀏覽

How to Unmarshal JSON Strings into Custom Go Scalar Types?

在Go 中將JSON 字串解組為派生標量類型

在Go 中,您可以從現有標量類型派生出新的標量類型。然而,由於標準庫的限制,為此類類型實現 UnmarshalJSON 可能具有挑戰性。

要正確處理此問題,必須為 UnmarshalJSON 方法使用指標接收器。值接收者不會保留方法內所做的變更。

傳遞給 UnmarshalJSON 的參數是 JSON 文本。可以將其解組為純字串,並丟棄任何引用。

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 資料中的鍵相符。

json.Unmarshal([]byte(`{"person": "Ralph", "count": 4, "greeting": "Hello"}`), &m);

透過執行下列步驟,您可以有效地為派生標量類型實作 UnmarshalJSON,從而實現 JSON 字串自動轉換為您自訂的值類型。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn