解碼具有混合值類型的JSON 數組
在某些情況下,您可能會遇到包含不同類型元素的JSON 數組。例如:
{["NewYork",123]}
Go 陣列要求您明確指定其類型,這在處理混合類型的陣列時可能會變得具有挑戰性。
使用介面的解決方案{}
要處理混合類型數組,您可以利用 interface{} 類型,它允許任何類型的值。以下是在 Go 中實現此目的的方法:
package main import ( "encoding/json" "fmt" ) type UntypedJson map[string][]interface{} func main() { j := `{"NYC": ["NewYork",123]}` ut := UntypedJson{} err := json.Unmarshal([]byte(j), &ut) if err != nil { fmt.Println(err) return } fmt.Printf("%#v", ut) }
注意: 值得注意的是,提供的 JSON 範例在技術上是無效的,因為 JSON 物件必須有鍵。修正的範例是:
{"NYC": ["NewYork",123]}
以上是如何在 Go 中解碼具有混合資料類型的 JSON 數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!