需要使用 go 和 go-gihub 过滤一些数据,在响应中停留在下一步

Posted

技术标签:

【中文标题】需要使用 go 和 go-gihub 过滤一些数据,在响应中停留在下一步【英文标题】:Need to filter some data using go and go-gihub, stuck on next steps with the response 【发布时间】:2022-01-13 15:04:12 【问题描述】:

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


    package main

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

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

        client := github.NewClient(nil)

        opt := &github.ListOptionsPage: 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)

    

【问题讨论】:

【参考方案1】:

我不确定你的确切意思:

响应中的类型无法解组

您是否收到某种错误?

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.ListOptionsPage: 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 过滤一些数据,在响应中停留在下一步的主要内容,如果未能解决你的问题,请参考以下文章

使用 mongoose nodejs 过滤 mongodb 数据库

Go使用MySQL数据库

R + Shiny + DT :下载过滤数据

Windows Go 开发环境下载安装并配置

Go语言基础语法(一)

如何使用角度6的分页,过滤,排序功能在表组件中加载大数据