有时候我们项目里面需要将树型关系的数据转换成Json格式的String字符串
假设数据库中的数据如下
需要转换后输出的字符串的结果如下(对应的层级的关系)
[
{name:'爷爷',id:'1',content:'老人辈',parentId:'0',expanded: true,children:[
{name:'爸爸',id:'2',content:'长辈',parentId:'1',expanded: true,children:[
{name:'儿子',id:'4',content:'晚辈',parentId:'2',leaf:true},{name:'女儿',id:'5',content:'晚辈',parentId:'2',leaf:true}
]},{name:'叔叔',id:'3',content:'长辈',parentId:'1',leaf:true}
]
}
]
相应的代码资料网上可以找到
1、树节点类
1 importjava.util.ArrayList;2 importjava.util.HashMap;3 importjava.util.List;4 importjava.util.Map;5
6 /**
7 * 树节点类(用于模拟树型结构关系中的节点)8 */
9 public classTreeNode {10 public static final String TREENODE_ATTRIBUTE_NAME_NAME = "name"; //字段属性name
11 public static final String TREENODE_ATTRIBUTE_NAME_ID = "id"; //字段属性id
12 private Map attributes = new HashMap(); //字段属性的Map
13
14 private TreeNode parent = null; //当前节点的父节点
15 private List child = new ArrayList(); //当前节点的子节点
16 private boolean isCheck = false; //当前节点是否被勾选标志
17
18
19 /*
20 无参构造函数21 */
22 publicTreeNode(){23 super();24 }25
26 /**
27 * 获取/设置 节点的属性name28 *@return
29 */
30 publicString getName() {31 return(String) attributes.get(TREENODE_ATTRIBUTE_NAME_NAME);32 }33 public voidsetName(String name) {34 attributes.put(TREENODE_ATTRIBUTE_NAME_NAME,name);35 }36
37 /**
38 * 获取/设置 节点的属性id39 *@return
40 */
41 publicString getId() {42 retur