登录
首页 >  Golang >  Go问答

使用 go 和 go-gihub 进行数据过滤,并根据响应执行后续操作

来源:stackoverflow

时间:2024-02-16 12:36:23 146浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《使用 go 和 go-gihub 进行数据过滤,并根据响应执行后续操作》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我将 go 与 go-gihub 库结合使用,并设法列出了下面代码中所示的示例存储库中的一些版本。下一步是使用 json 响应并观察新版本,但是响应中的类型无法解组?

package main

    import (
        "context"
        "fmt"
        "github.com/google/go-github/github"
    )

    func main() {
        fmt.Println("start")

        client := github.NewClient(nil)

        opt := &github.ListOptions{Page: 2, PerPage: 10}

        ctx := context.Background()

        rls, resp, err := client.Repositories.ListReleases(ctx, "prometheus-community", "helm-charts", opt)

        if err != nil {
            fmt.Println(err)
        }

        fmt.Println("contents of rls:", rls)
        fmt.Println("contents of resp:", resp)

    }

正确答案


我不确定你的意思到底是什么:

无法解组响应中的类型

您是否收到某种错误?

listreleases 的调用返回 []*repositoryreleases (see code),因此您可以循环响应并对数据执行任何您需要的操作。

例如,列出每个版本的名称:

package main

import (
    "context"
    "fmt"

    "github.com/google/go-github/github"
)

func main() {
    fmt.Println("start")

    client := github.NewClient(nil)

    opt := &github.ListOptions{Page: 2, PerPage: 10}

    ctx := context.Background()

    rls, resp, err := client.Repositories.ListReleases(ctx, "prometheus-community", "helm-charts", opt)

    if err != nil {
        fmt.Println(err)
    }

    for _, release := range rls {
        if release.Name != nil {
            fmt.Println(*release.Name)
        }
    }

}

理论要掌握,实操不能落!以上关于《使用 go 和 go-gihub 进行数据过滤,并根据响应执行后续操作》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>