如何使用GO从外部api获取数据?



我有外部数据,我需要从中获取数据,这个结果来自API端点

{
"data": [
{
"id": 30002005,
"name": "test",
"info": "{"Version":"7.0.484","CompanyName":"test"}",
},
......
]
}

我需要得到这些数据并将其重新格式化为我的情况(将数据放入struct然后做任何我需要的)。

go代码:

type OldData struct {
Id            string `json:"id"`
Name          string `json:"name"`
}
func Index() {
url := "https://exmaple.com/api/posts"
var bearer = "Bearer XXXXXX"
req, err := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", bearer)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Println(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println(err)
}
var record OldData
json.Unmarshal(body, &record)
fmt.Println(record)
}

fmt.Println(record)的结果为{ }

我创建了第三个info:

type OldData struct {
Id            string `json:"id"`
Name          string `json:"name"`
Info          string `json:"info"`
}
type Info struct {
Version     string `json:"Version"`
CompanyName string `json:"CompanyName"`
}

JSON中有一个名为data的数组。您试图将其解组为单个结构。试着定义一个结构体,它的数据字段是一个slice:

type OldData struct {
Id            string `json:"id"`
Name          string `json:"name"`
}
type OldDataItems struct {
Data []OldData `json:"data"`
}

现在尝试将其解组为OldDataItems的实例。

最新更新