Panic: JSON Unmarshal Array into Go Struct
尝试从 JSON API 解析数据时,遇到错误:“panic: json:无法将数组解组为 main.Structure 类型的 Go 值。”将 JSON 数组解组到 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中文网其他相关文章!