java递归无级树输出json格式

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java递归无级树输出json格式

由于项目需要将数据库中的一个层级表转换成json格式输出,在网上找了很久都没有找开合适的内容,要不是代码太复杂,就是不符合需求,所以就自己用递归写了一个无级树的代码。代码很简单就两个类一个TreeNode.java 和一个测试类Test.java(可直接运行) 在运行之前需要以下公共类:

commons-beanutils.jar

commons-collections.jar

commons-lang.jar

commons-logging.jar

ezmorph-1.0.6.jar

json-lib-2.3-jdk15.jar

直接贴代码:TreeNode.java

package com.test;

import java.util.ArrayList;

public class TreeNode {

private String id;

private String pid;

private String name;

private String remark;

private ArrayList children = new ArrayList();

public TreeNode(String id, String pid, String name, String remark) { this.id = id;

this.pid = pid;

= name;

this.remark = remark;

}

public void add(TreeNode node) {//递归添加节点

if ("0".equals(node.pid)) {

this.children.add(node);

} else if (node.pid.equals(this.id)) {

this.children.add(node);

} else {

for (TreeNode tmp_node : children) {

tmp_node.add(node);

}

}

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

= name;

}

public String getRemark() {

return remark;

}

public void setRemark(String remark) {

this.remark = remark;

}

public ArrayList getChildren() {

return children;

}

public void setChildren(ArrayList children) {

this.children = children;

}

}

测试类Test.java

package com.test;

import net.sf.json.JSONArray;

import

public

public static void main(String[] args) {

TreeNode root = new TreeNode("0", "0", "000000", "00JJJ");

TreeNode node = null;

node = new TreeNode("1", "0", "111111", "11AAA");

root.add(node);

node = new TreeNode("2", "0", "222222", "11BBB");

root.add(node);

node = new TreeNode("3", "2", "333333", "11CCC");

root.add(node);

// JSONObject obj = JSONObject.fromObject(root);//有根

JSONArray obj = JSONArray.fromObject(root.getChildren());// 不要根

System.out.println(obj.toString());

}

}

相关文档
最新文档