首页 > 后端开发 > Golang > 为什么将数组映射到 Go 结构时 JSON Unmarshal 失败?

为什么将数组映射到 Go 结构时 JSON Unmarshal 失败?

Mary-Kate Olsen
发布: 2024-11-30 09:12:17
原创
966 人浏览过

Why Does JSON Unmarshal Fail When Mapping Arrays to Go Structs?

无法将 JSON 数组解组为 Go 结构

在尝试从 JSON API 解析数据时,程序员遇到了错误:“恐慌:json:无法将数组解组为 Go 类型值main.Structure."

问题摘录:

type Structure struct {
        stuff []interface{}
}

...

decoded := &Structure{}
err = json.Unmarshal(body, decoded)
登录后复制

预期结果:

接口对象列表。

实际结果:

恐慌:json:无法将数组解组为类型为 main.Structure

解决方案:

问题出现在以下情况:尝试将 JSON 数组解组为 Go 结构。要解决此问题,可以:

  • 解组为切片:
var data []interface{}
err = json.Unmarshal(body, &data)
登录后复制
  • 解组为切片的结构体:
type Tick struct {
     ID string
     Name string
     ... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)
登录后复制

通过自定义结构体类型以匹配响应数据的结构,解组过程将成功解析 JSON 数组。

以上是为什么将数组映射到 Go 结构时 JSON Unmarshal 失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板