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