比如:福建省|省公司本部|福州公司 福建省|省公司本部|厦门公司 浙江省|省公司本部|杭州公司
 如何java代码实现变成id name pid 1 福建省 0 2 省公司本部 1 3 福州公司 2 4 厦门公司 2 5 浙江省 0 6 省公司本部 5 7 杭州公司 6
 各位大神能否帮小弟解答下不胜感激java

解决方案 »

  1.   


    这个以前写的,可以参考一下
    需要json-lib-2.4-jdk15.jar
    getGroupTree()返回JSONArray ,JSONArray toString之后可以直接在页面上显示树形结构
    前台用easyui的tree
    public JSONArray getGroupTree() {
    List<Map<String, Object>> treeList = new ArrayList<Map<String, Object>>();
    Map<String, Object> map = new HashMap<String, Object>();
    Group group = getGroupByParentId(0);
    if (group == null) {
    return null;
    }
    map = groupToMap(group);
    tree(map);
    treeList.add(map);
    JSONArray jsonArray = JSONArray.fromObject(treeList);
    return jsonArray;
    }

    public static Map<String, Object> groupToMap(Group group){
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("id", group.getId());
    map.put("text", group.getName());
    return map;
    }

    public Map<String, Object> tree(Map<String, Object> map) {
    int id = Integer.parseInt(map.get("id").toString());
    List<Group> groups = getGroupsByParentID(id);
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    for (int i = 0; i < groups.size(); ++i) {
    Group group = groups.get(i);
    Map<String, Object> m = groupToMap(group);
    if (group.getIsleaf() == 0) {
    tree(m);
    }
    list.add(m);
    }
    map.put("children", list);
    return map;
    }