php小編蘋果在這篇文章中將為大家介紹如何使用json.Unmarshal函數將JSON資料轉換為自訂的另一種類型,即映射到切片。在開發過程中,我們經常會遇到需要將JSON資料轉換為不同的資料類型的情況,而json.Unmarshal函數可以幫助我們實現這一功能。透過本文的介紹和範例程式碼,相信讀者們能夠更好地理解和應用json.Unmarshal函數,提高開發效率和程式碼品質。
給定以下 json 字串:
{ "username":"bob", "name":"robert", "locations": [ { "city": "paris", "country": "france" }, { "city": "los angeles", "country": "us" } ] }
我需要一種方法將其解組到像這樣的結構中:
type User struct { Username string Name string Cities []string }
其中 cities
是包含「city」值的切片,「country」被丟棄。
我認為這可以使用自訂 json.unmarshal
函數來完成,但不確定如何做到這一點。
您可以為 cities
定義新類型並實作自訂 unmarshaler:
type User struct { Username string `json:"username"` Name string `json:"name"` Cities []Cities `json:"locations"` } type Cities string func (c *Cities) UnmarshalJSON(data []byte) error { tmp := struct { City string `json:"city"` }{} err := json.Unmarshal(data, &tmp) if err != nil { return err } *c = Cities(tmp.City) return nil }
以上是json.Unmarshal 轉換為自訂的另一種類型(映射到切片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!