Panic: JSON Unmarshal Array into Go Struct
嘗試從JSON API 解析資料時,遇到錯誤:「panic: json:無法解析資料將陣列解組為main.Structure 類型的Go 值。結構時會出現此問題。
您的程式碼:
type Structure struct { stuff []interface{} } func main() { // ... decoded := &Structure{} err = json.Unmarshal(body, decoded) }
預期結果:
您期望程式碼回傳介面清單
實際結果:
相反,您收到一條錯誤,指示 JSON 陣列無法解組到 Structure Go 值。
解:
要解決此問題,請考慮兩個方法:
解編為切片:
將行:
decoded := &Structure{}
替換為:
var data []interface{}
這會將 JSON 陣列解組為一個切片介面。
解組到結構體切片:
為回應資料結構建立特定的結構。例如:
type Tick struct { ID string Name string Symbol string Rank string Price_USD string }
然後,解組為這些結構的切片:
var data []Tick err = json.Unmarshal(body, &data)
以上是為什麼 JSON 將數組解組到 Go 結構中會導致恐慌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!