我正在编写一个简单的应用程序,它向返回类型的异构 JSON 的 API 发出请求
{
"results": [
[123, "Zho's Mask", 10586],
[345, "Ravaging Superior Studded Coat", 58]
]
}
最终,我希望能够使用结果响应中的特定索引。例如,我希望能够获得“Zho's Mask”,或者价格:10586。这是我正在使用的 API GW2TP。
GO JSON 博客中的大多数示例都引用了不包含嵌套数组的更简单或直接的 JSON。
根据我的阅读,由于我知道 JSON 响应的一般外观,我可以制作一个 GO 结构并将其解组为该结构的一个实例。但是,我无法为这项工作创建正确的结构。
这是我目前创建适当结构的尝试
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
// {"results":[[123,"Zho's Mask",3532]]}
type Equipment struct {
Results []ResArray
}
type ResArray struct {
Medium []LastArray
}
type LastArray struct {
Info string
}
func main() {
res, err := http.Get("http://api.gw2tp.com/1/items?ids=123&fields=name,sell")
if err != nil {
log.Fatal(err)
}
var equipment Equipment
data, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Print("ReadAll Error: ", err, "\n")
}
err = json.Unmarshal(data, &equipment)
if err != nil {
fmt.Print("Unmarshal error: ", err, "\n")
}
}
这是解组错误:
Unmarshal error: json: cannot unmarshal array into Go struct field Equipment.Results of type main.ResArray
最后,这是我目前 在 Golang an Introduction 中实现所需的 GO 结构 JSON方法的灵感。
千万里不及你
相关分类