gpt4 book ai didi

json - panic : json: cannot unmarshal array into Go value of type main. 结构

转载 作者:IT王子 更新时间:2023-10-29 01:19:28 25 4
gpt4 key购买 nike

你想完成什么?

我正在尝试从 json api 解析数据。

粘贴显示问题的代码部分。

package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

type Structure struct {
stuff []interface{}
}

func main() {
url := "https://api.coinmarketcap.com/v1/ticker/?start=0&limit=100"
response, err := http.Get(url)
if err != nil {
panic(err)
}
body, err := ioutil.ReadAll(response.Body)
if err != nil {
panic(err)
}
decoded := &Structure{}
fmt.Println(url)
err = json.Unmarshal(body, decoded)
if err != nil {
panic(err)
}
fmt.Println(decoded)
}

你期望结果是什么?

我希望代码返回一个接口(interface)对象列表。

你得到的实际结果是什么?

我收到一个错误:panic: json: cannot unmarshal array into Go value of type main.Structure

最佳答案

应用程序正在将 JSON 数组解码为结构。解码为一个 slice :

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

考虑解码为特定于响应数据的结构片段:

 type Tick struct {
ID string
Name string
Symbol string
Rank string
Price_USD string
... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)

关于json - panic : json: cannot unmarshal array into Go value of type main. 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com