如何使用 GO 从外部 api 获取数据?
How to get data from external api using GO?
我有外部数据,我需要从中获取数据,这个结果来自 API 端点
{
"data": [
{
"id": 30002005,
"name": "test",
"info": "{"Version":"7.0.484","CompanyName":"test"}",
},
......
]
}
我需要获取这些数据并将其重新格式化为我的情况(将数据放入结构中然后执行我需要的任何操作)。
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)
的结果是{ }
更新
我创建了第三个信息:
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
。您正在尝试将其解组为单个结构。尝试定义一个结构,它有一个数据字段,它是一个切片:
type OldData struct {
Id string `json:"id"`
Name string `json:"name"`
}
type OldDataItems struct {
Data []OldData `json:"data"`
}
现在尝试解组为 OldDataItems
的一个实例。
我有外部数据,我需要从中获取数据,这个结果来自 API 端点
{
"data": [
{
"id": 30002005,
"name": "test",
"info": "{"Version":"7.0.484","CompanyName":"test"}",
},
......
]
}
我需要获取这些数据并将其重新格式化为我的情况(将数据放入结构中然后执行我需要的任何操作)。
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)
的结果是{ }
更新
我创建了第三个信息:
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
。您正在尝试将其解组为单个结构。尝试定义一个结构,它有一个数据字段,它是一个切片:
type OldData struct {
Id string `json:"id"`
Name string `json:"name"`
}
type OldDataItems struct {
Data []OldData `json:"data"`
}
现在尝试解组为 OldDataItems
的一个实例。