首页 >后端开发 >Golang >为什么会出现'json:无法将数组解组为 main.Structure 类型的 Go 值”以及如何修复它?

为什么会出现'json:无法将数组解组为 main.Structure 类型的 Go 值”以及如何修复它?

Patricia Arquette
Patricia Arquette原创
2024-12-02 00:44:13917浏览

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