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

golang-okta api中的地图输出排序和过滤,go,okta,okta-api,Go,Okta,Okta Api,我通过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\""))

我通过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 user
next user
so on
so on
&{0xc000106480}
&map[email:{email}firstName:{FN}lastName:{LN}登录:{login}手机:第二封email:sshUserName:{ssh}
下一个用户
下一个用户
等等
等等

我的问题是如何将输出过滤到特定字段并进行排序或过滤。我希望输出是JSON格式的。

如果要从JSON输出中隐藏某些结构字段,请遵循以下规则:

type User struct {
  ID int `json:"id"`
  Username string `json:"username"`
  MobilePhone string `json:"-"`
}
您必须使用
-
字符隐藏结构字段。我建议您阅读有关Golang标记的内容。

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

type User struct {
  ID int `json:"id"`
  Username string `json:"username"`
  MobilePhone string `json:"-"`
}
您必须使用
-
字符隐藏结构字段。我建议您阅读有关Golang标记的内容。

您需要将响应对象封送到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))
}

您需要将响应对象封送到一个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))
}