需要关于如何将具有相同键的两个值从json格式解析为java映射的建议吗
我正在将LDAP中的ldif属性读入我的java程序,我最初的想法是将这些属性放入一个映射中,然后从映射中解析它们,但我发现,有一个名为“departmentNumber”的属性,其中包含两个json格式的值需要关于如何将具有相同键的两个值从json格式解析为java映射的建议吗,java,hashmap,ldap,Java,Hashmap,Ldap,我正在将LDAP中的ldif属性读入我的java程序,我最初的想法是将这些属性放入一个映射中,然后从映射中解析它们,但我发现,有一个名为“departmentNumber”的属性,其中包含两个json格式的值 departmentNumber: {"sid":"729999","uid":501,"name":"tebase","role":"managers","title":"sales","groups":["others"]} departmentNumber: {"sid":"7246
departmentNumber: {"sid":"729999","uid":501,"name":"tebase","role":"managers","title":"sales","groups":["others"]}
departmentNumber: {"sid":"724605","uid":37,"name":"tebase","role":"managers","title":"develope","groups":["leaders"]}
所以我用地图把它们放进去,一些代码如下所示
但是我的方法只能检索第一个json值,它包含{“sid”:“729999”},但没有第二个值包含{“sid”:“724605”}
我观察到程序日志是:
这是从ldif属性读取的日志
这是将日志放入地图并将其解析出来的日志
如您所知,只有一个值,即sid:72999,而不是两个值
原始ldif属性为:
LDAPv3
带作用域子树的基
过滤器:uid=brucele
请求:全部
Z39414,经理,developer.alle.com
dn:cn=Z39414,ou=Managers,dc=developer,dc=alle,dc=com
布鲁西里
用户密码:qwdmsdierf
邮寄:brucelee@gm.macom
信息:2006/02/12
李小龙
部门编号:
{“sid”:“729999”,“uid”:501,“name”:“tebase”,“role”:“managers”,“title”:“sales”,“groups”:[“others”]}
部门编号:
{“sid”:“724605”,“uid”:37,“name”:“tebase”,“role”:“managers”,“title”:“develope”,“groups”:[“leaders”]}
部门:000000
李小龙
对象类:inetOrgPerson
对象类:organizationalPerson
对象类:person
对象类:top
cn:Z39414
展品名称:李小龙
描述:李小龙
搜索结果
搜索:2
结果:0成功
numResponses:2
货币:1
我的问题是,我如何将这两个json值都放入我的映射中,或者我对映射的使用是错误的,并且有更好的方法来处理这种情况
公共数据模型getUser(字符串uid、字符串passwd、字符串角色、数据模型用户)引发异常{
私有映射=null;
if(角色相等(“经理”)){
map=Ldap.getAttrubites(ldapurl、uid、passwd);
列表标题数组=新的ArrayList();
List rolesArray=new ArrayList();
map.forEach((键,值)
->{logger.info(“{}-{}”,键,值);});
if(键等于(“部门编号”)){
List model=map.get(“部门号”).get();
model.stream().forEach(k->{
对于(int i=0;iV
部分指定一个集合类。例如,如下所示
Map<String, List<String>> map = ...
Map=。。。
Java EE API中定义的
接口就是一个实现您想要做的事情的示例。为什么不使用JSON解析器?
2019 22:30:58,247 services.LdapService services.LdapService.getUser(LdapService.java:251)
ldap user:{"username":"brucelee","fullname":"Bruce Lee","email":"brucelee@gm.macom","departmentid":"729999","titles":[{"schoolid":"729999","titles":["managers","sales"]}],"cloudroles":{"usage":"clouddev","roles":[{"appname":"mail","departmentid":"729999","titles":["managers","sales"]}]},"guid":"c00d5ba660145307c84f2c1e1c557e4ededaf1830029d40aa5b244027","pid":"Z39414","openid":"http://openid.macom/brucelee"}
Map<String, List<String>> map = ...