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

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


{

  "data": [

    {

      "id": 30002005,

      "name": "test",

      "info": "{"Version":"7.0.484","CompanyName":"test"}",

    },

    ......

  ]

}

我需要获取这些数据并将其重新格式化为我的情况(将数据放入结构中然后执行我需要的任何操作)。


去代码:


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"`

}


慕森卡
浏览 139回答 1
1回答

jeck猫

在 JSON 中有一个数组,名为data. 您正在尝试将其解组为单个结构。尝试定义一个结构,它有一个数据字段,它是一个切片:type OldData struct {    Id            string `json:"id"`    Name          string `json:"name"`}type OldDataItems struct {    Data []OldData `json:"data"`}现在尝试解组为OldDataItems.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go