总计Go newbie在这里,我正在尝试解析来自具有以下结构的LDAP服务的响应
{
"isMemberOf": [
“cn=group1,ou=groups,dc=example,dc=domain,dc=com",
“cn=group2,ou=groups,dc=example,dc=domain,dc=com",
"cn=.............................................,
"cn=.............................................
]
}
我需要将所有cn =值(例如:group1,group2)收集到[]字符串中,例如[group1,group2]或结构。
正如我所说的,我是Go的新手,对于实现上述目标的任何指示,我们将不胜感激。
最佳答案
struct type UserGroups struct {
IsMemberOf []string `json:"isMemberOf"`
}
//part of main code
//receive the response from the service
body, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err.Error())
}
s, err := getUserGroups([]byte(body))
fmt.Println(s.IsMemberOf[0])
//end main code
//function to read user groups
func getUserGroups(body []byte) (*UserGroups, error) {
var s = new(UserGroups)
err := json.Unmarshal(body, &s)
if(err != nil){
fmt.Println("whoops:", err)
}
return s, err
}
//输出
cn = group1,ou = groups,dc = example,dc = domain,dc = com
我想我可以找到cn =这样的长度
count:= strings.Count(string(body),“cn =”)
然后使用该计数遍历上面的数组,但是如果没有一些额外的逻辑,仍然无法获得我想要的数组。我想办法做到这一点
如果有人可以指出一个更好的替代方法来完成此操作,请多加赞赏。
谢谢
克里斯
关于parsing - Golang解析JSON响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38215537/