public void testDept(){
String jsonStr="[{\n" +
“\t"name”: “财务部”,\n" +
“\t"id”: 2,\n" +
“\t"parentid”: 1,\n" +
“\t"order”: 99998500\n" +
“}, {\n” +
“\t"name”: “人力资源部”,\n" +
“\t"id”: 9,\n" +
“\t"parentid”: 1,\n" +
“\t"order”: 99998250\n" +
“}, {\n” +
“\t"name”: “销售部”,\n" +
“\t"id”: 10,\n" +
“\t"parentid”: 1,\n" +
“\t"order”: 99998611\n" +
“}, {\n” +
“\t"name”: “客户服务部”,\n" +
“\t"id”: 11,\n" +
“\t"parentid”: 224,\n" +
“\t"order”: 100001000\n" +
“}, {\n” +
“\t"name”: “研发部”,\n" +
“\t"id”: 14,\n" +
“\t"parentid”: 1,\n" +
“\t"order”: 99998625\n" +
“}, {\n” +
“\t"name”: “实施部”,\n" +
“\t"id”: 16,\n" +
“\t"parentid”: 224,\n" +
“\t"order”: 100002000\n" +
“}, {\n” +
“\t"name”: “北有限公司”,\n" +
“\t"id”: 1,\n" +
“\t"parentid”: 0,\n" +
“\t"order”: 100000000\n" +
“},{\n” +
“\t"name”: “服务中心”,\n" +
“\t"id”: 224,\n" +
“\t"parentid”: 1,\n" +
“\t"order”: 99998597\n" +
“}]”;
List
}
private static Map getThree(Map map,int parentId){
//获取所有子节点
Map childTree = getChildTree(map, parentId);
Iterator iterator = childTree.keySet().iterator();
while (iterator.hasNext()){
getChildTree(childTree,(Integer) iterator.next());
}
return map;
}
private static Map getChildTree(Map map,int id){
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()){
Map map1 = (Map)map.get(iterator.next());
if(Integer.parseInt(map1.get("pid").toString())==id){
map1.put("name_index", ((Map)map.get(id)).get("name_index")+">"+map1.get("dept_name"));
}
}
return map;
}
这段代码展示了如何将JSON字符串解析为Map对象列表,并构造一个以部门ID为键,包含父ID和部门名称的HashMap。最终调用getThree方法构建三层结构的组织部门。
1236

被折叠的 条评论
为什么被折叠?



