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

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

Patricia Arquette
Patricia Arquette原創
2024-12-02 00:44:13986瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn