Json 使用查询处理Golang中的API?

Json 使用查询处理Golang中的API?,json,api,go,Json,Api,Go,我正在尝试使用API处理一首歌曲。我尝试在http.get中使用特定的URL并进一步解组数据,但控制台中返回的唯一元素是{}。如果您能帮我找到正确的方向,我们将不胜感激 编辑:这里有一些代码。我的主文件中有这个 var data [2]Data if err != nil { log.Fatal(err) } defer response.Body.Close() if response.StatusCode != 200 { log.Fatal("Didn't g

我正在尝试使用API处理一首歌曲。我尝试在http.get中使用特定的URL并进一步解组数据,但控制台中返回的唯一元素是{}。如果您能帮我找到正确的方向,我们将不胜感激

编辑:这里有一些代码。我的主文件中有这个

var data [2]Data

if err != nil {
    log.Fatal(err)
}

defer response.Body.Close()
if response.StatusCode != 200 {
    log.Fatal("Didn't get 200")
}

rawData, err := ioutil.ReadAll(response.Body)
if err != nil {
    log.Fatal(err)
}

json.Unmarshal(rawData, &data)

fmt.Println(data[0])
我在一个单独的文件中为JSON标记/键创建了一个结构

type Data struct {
    SongID          string `json:id`
    Name            string `json:name`
}
这应该是数据结构

  • 使用curl请求

    卷曲

  • 用于将JSON响应转换为Golang结构


  • 您能否向我们展示一些代码,以便我们能够帮助解决其中的特定问题?Thx.@SoftwareEngineer我已经用我到目前为止的一些代码进行了编辑。谢谢
    json.Unmarshal
    返回一个错误值,您应该检查它是否为
    nil
    ,如果不是,它将告诉您问题所在,这也是您看到
    {}
    的原因。。。。实际上,在这种情况下,它可能不会说太多,因为您的目标类型
    [2]SongData
    似乎与从该url返回的json结构不匹配。您需要向json.Unmarshal传递一个在结构上与json匹配的类型。您的代码没有问题,只需替换数据结构。不使用curl,只需将rawData打印为字符串并将其转换为struct即可。
     type data struct {
       Error    bool `json:"error"`
       Response struct {
        Results []struct {
            ID   int    `json:"id"`
            Name string `json:"name"`
        } `json:"results"`
      } `json:"response"`
    }