解組具有混合值類型的JSON 數組
由於要求,解組包含不同類型值的JSON 數組可能會在Go 中帶來挑戰用於Go 陣列中的明確類型定義。
Case研究:
考慮以下無效的JSON 範例:
["NewYork", 123]
嘗試將此陣列解碼為Go 陣列會失敗,因為Go 陣列需要固定類型,即在這種情況下未知。
解決方案:
克服這個問題限制,Go提供了interface{}類型,它允許儲存任何類型的值。透過利用interface{},可以解組包含混合值類型的JSON數組,如下所示:
const j = `{"NYC": ["NewYork", 123]}` type UntypedJson map[string][]interface{} func main() { ut := UntypedJson{} fmt.Println(json.Unmarshal([]byte(j), &ut)) fmt.Printf("%#v", ut) }
在這個範例中,我們定義一個自訂類型UntypedJson作為字串鍵到切片的映射介面{}.然後將 JSON 陣列解組到 UntypedJson 實例中。 fmt.Printf 語句顯示解組數據,其中包含 JSON 數組中的混合值。
透過利用 interface{} 類型,可以解組包含不同類型值的 JSON 數組,從而提供更多資訊針對複雜資料場景的靈活多功能解決方案。
以上是如何在 Go 中解組具有混合資料類型的 JSON 數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!