总计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/

10-12 23:32