Json 使用查询处理Golang中的API?
我正在尝试使用API处理一首歌曲。我尝试在http.get中使用特定的URL并进一步解组数据,但控制台中返回的唯一元素是{}。如果您能帮我找到正确的方向,我们将不胜感激 编辑:这里有一些代码。我的主文件中有这个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
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`
}
这应该是数据结构
您能否向我们展示一些代码,以便我们能够帮助解决其中的特定问题?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"`
}