在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中文網其他相關文章!