获得树形json串

public class TreeNode {

private long nodeId;

private String nodeName;

private long fatherNodeId;

public TreeNode() {

}

public TreeNode(long nodeId, String nodeName, long fatherNodeId) {

this.nodeId = nodeId;

this.nodeName = nodeName;

this.fatherNodeId = fatherNodeId;

}

public long getNodeId() {

return nodeId;

}

public void setNodeId(long nodeId) {

this.nodeId = nodeId;

}

public String getNodeName() {

return nodeName;

}

public void setNodeName(String nodeName) {

this.nodeName = nodeName;

}

public long getFatherNodeId() {

return fatherNodeId;

}

public void setFatherNodeId(long fatherNodeId) {

this.fatherNodeId = fatherNodeId;

}

}

public class ConstructorTree {

StringBuffer json = new StringBuffer();

/**

*

* @Title: getJson

* @Description: 调用接口

* @author Administrator

* @param list

* @param node

* @return

*/

public String getJson(List<TreeNode> list, TreeNode node) {

json = new StringBuffer();

constructorJson(list, node);

String jsonDate = json.toString();

return ("[" + jsonDate + "]").replaceAll(",]", "]");

}

/**

*

* @Title: constructorJson

* @Description: 构建json树

* @author Administrator

* @param list

* @param treeNode

*/

@SuppressWarnings("unchecked")

public void constructorJson(List<TreeNode> list, TreeNode treeNode) {

if (hasChild(list, treeNode)) {

json.append("{id:");

json.append(treeNode.getNodeId());

json.append(",text:");

json.append(treeNode.getNodeName());

json.append(",children:[");

List<TreeNode> childList = getChildList(list, treeNode);

Iterator iterator = childList.iterator();

while (iterator.hasNext()) {

TreeNode node = (TreeNode) iterator.next();

constructorJson(list, node);

}

json.append("]},");

} else {

json.append("{id:");

json.append(treeNode.getNodeId());

json.append(",text:");

json.append(treeNode.getNodeName());

json.append("},");

}

}

/**

*

* @Title: getChildList

* @Description: 获得子节点列表信息

* @author Administrator

* @param list

* @param node

* @return

*/

public List<TreeNode> getChildList(List<TreeNode> list, TreeNode node) {

List<TreeNode> li = new ArrayList<TreeNode>();

Iterator it = list.iterator();

while (it.hasNext()) {

TreeNode n = (TreeNode) it.next();

if (n.getFatherNodeId() == node.getNodeId()) {

li.add(n);

}

}

return li;

}

/**

*

* @Title: hasChild

* @Description: 推断是否有子节点

* @author Administrator

* @param list

* @param node

* @return

*/

public boolean hasChild(List<TreeNode> list, TreeNode node) {

return getChildList(list, node).size() > 0 ? true : false;

}

}

时间: 2024-10-23 15:20:55

获得树形json串的相关文章

查询复杂对象用respsbody转换成json串时,mybatis的延迟加载报错的解决方法

在查询数据时,如果你查询的是复杂的对象需要通过respsbody转换成json串时,mybatis用的延迟加载会报以下错误: 解决方法:第一步在RequestMapping(参数中加入 produces =  "application/json")表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头"Accept:application/json"时即可匹配.第二步:在实体类中前面加上注解@JsonInclude(JsonIn

C# 对象与JSON串互相转换

.Net2.0 需要借助于Newtonsoft.Json.dll using System; using System.IO; using System.Text; using Newtonsoft.Json; namespace OfflineAcceptControl.UCTools { public class JsonTools { // 从一个对象信息生成Json串 public static string ObjectToJson(object obj) { return JavaS

winform - json串的转换

通过java接口,或者查询数据库返回json串. 可以有两种方式进行解读. 1.简单方式 没有深层结构,最好只有一条数据(当然也可多条).可以用datatable来获取.返回的是clo0.clo1.clo2...这种标识. 这就要求事先知道列的内容,尤其是自己写的查询语句的时候. DataTable dt0 = FromRuntime.sqlToDataTables(sql); //如果有数据 if (dt0.Rows.Count > 0) { //遍历dt0 for (int i = 0; i

使用谷歌Gson实现Json串和Java Bean互转

/** * 使用谷歌Gson实现Json串和Java Bean互转 */ public class JsonHelper { public static String toJson(Object src){ return new Gson().toJson(src); } public static <T> T fromJson(String json, Class<T> clazz) throws Exception { return new Gson().fromJson(js

android下基本json串的生成与解析

以前就用过json串,不过是在java环境下面,如今转移到android环境下,java里面生成解析json串的jar包与android中自带的冲突,所以也只能用安卓自带的. 先前查网上的资料,感觉很多都说的很乱,直接给出了例子,也不解释一下就算完成,他们自己肯定是明白的,但是让读者理解起来肯定有点难度.而且解析的方法很多,而这里,我就介绍一种最原始最简单的吧.希望我拙劣的表达能力不会影响到你们的理解. 首先我们先讲一下json串格式 比如对象pet(宠物) class pet{ int pet

关于遍历javascript 中的json串浏览器输出的结果不统一的情况

我们在做项目的时候经常会用到javascript的json. 首先说一下javascript的json串是什么,json串属于javascript的一个对象,有键和值对应的对象. 一般的格式是: a = { a1 : 1, a2 : 'abc', a3 : 'abc', a4 : [1,2,3], a5 : function(){console.log(12)} }; 我们读取这个json 的方法是通过for in 循环来遍历: 使用json串的好处是可以事先把数据库中的数据一次性的读取出来存成

iOS中NSString,NSData和char的相互转换,JSON串转化为NSDictionary或NSArray

1.NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.NSData 转换成char* NSData

java对象与json串互转

1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSONStr.toString(); json串—java对象: JSONObject jsonObject = JSONObject.fromObject( jsonString ); Object pojo = JSONObject.toBean(jsonObject,pojoCalss); 2:j

iOS开发解决json串中的NSNull类型

后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串.下面是转化方法: 1 自定义的几个方法:放在NSDictionary类别中 #pragma mark - 私有方法 //将NSDictionary中的Null类型的项目转化成@"" +(NSDictionary *)nullDic:(NSDictionary *)myDic { NSArray *keyArr = [myDic a