为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中排序和过滤地图输出 - okta api

在 golang 中排序和过滤地图输出 - okta api

Go
墨色风雨 2022-05-23 15:48:03
我正在通过 go sdk 与 Okta API 进行交互。我是 golang 的新手,能够取回数据,但我不确定如何处理。func main() {    client, _ := okta.NewClient(context.Background(), okta.WithOrgUrl({URL}), okta.WithToken({TOKEN}))    filter := query.NewQueryParams(query.WithFilter("status eq \"ACTIVE\""))    users, resp, err := client.User.ListUsers(filter)    fmt.Println(resp, err)    for _, user := range users {        fmt.Println(user.Profile)    }}返回:PII 已编辑**&{0xc000106480} <nil>&map[email:{email} firstName:{FN} lastName:{LN} login:{login} mobilePhone:<nil> secondEmail:<nil> sshUserName:{ssh}next usernext userso onso on我的问题是如何将输出过滤到某些字段并进行一些排序或过滤。我有点期待输出是 JSON。
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

您需要将响应对象编组为 json 对象,您可以漂亮地打印其字符串表示形式。试试这个:


import (

    "context"

    "encoding/json"

    "fmt"

    "log"

    "github.com/okta/okta-sdk-golang/v2/okta"

    "github.com/okta/okta-sdk-golang/v2/okta/query"

)


var b []byte

var err error

filter := query.NewQueryParams(query.WithFilter("status eq \"ACTIVE\""))

ctx, client, err := okta.NewClient(context.Background(), okta.WithOrgUrl({URL}), okta.WithToken({TOKEN}))

users, resp, err := client.User.ListUsers(ctx, filter)

if err != nil {

    log.Println(err.Error())

} else {

    log.Println(resp.Status)

    if users != nil {

        b, err = json.MarshalIndent(users, "", " ")

        if err != nil {

            panic(err)

        }

    }

    fmt.Println(string(b))

}


查看完整回答
反对 回复 2022-05-23
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果您想从 json 输出中隐藏一些结构字段,请遵循以下规则:


type User struct {

  ID int `json:"id"`

  Username string `json:"username"`

  MobilePhone string `json:"-"`

}

您必须使用-字符来隐藏结构字段。我建议您阅读有关 Golang 标签的内容。 https://medium.com/golangspec/tags-in-golang-3e5db0b8ef3e


查看完整回答
反对 回复 2022-05-23
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信