首頁 > 後端開發 > Golang > 為什麼會出現「json:無法將陣列解組為 main.Structure 類型的 Go 值」以及如何修復它?

為什麼會出現「json:無法將陣列解組為 main.Structure 類型的 Go 值」以及如何修復它?

Patricia Arquette
發布: 2024-12-02 00:44:13
原創
919 人瀏覽過

Why Does

解組數組和結構類型

嘗試將JSON 資料解析為結構時,確保資料結構與結構之間的相容性至關重要目標類型。以下錯誤訊息:

panic: json: cannot unmarshal array into Go value of type main.Structure
登入後複製

表示應用程式正在嘗試將 JSON 中的陣列解組為需要不同類型的結構。

要解決此問題,請考慮以下解決方案:

  • 解組到切片:

如果JSON 資料是物件數組,則根據JSON 資料的結構將其解組為介面{}的切片或特定結構的切片:

var data []interface{}
err = json.Unmarshal(body, &data)

// Unmarshal to specific structs:
type Tick struct {
     ID string
     Name string
     ...
}

var data []Tick
err = json.Unmarshal(body, &data)
登入後複製
  • 修改結構體:

如果需要保留現有結構體,請考慮修改其欄位類型以接受陣列:

type Structure struct {
     stuff [][]interface{} // Change to a slice of slices
}
登入後複製

以上是為什麼會出現「json:無法將陣列解組為 main.Structure 類型的 Go 值」以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板