字符串解析成easyui-tree的格式
传入的list:
[30 : null : null, 301503 : null : null, 301501 : null : null, 301502 : null : null, 3015 : null : null]
解析后的json:

public class LeftTreeBean {
public StringBuilder getTreeMenus(List lst, String contextPath) {
StringBuilder model = new StringBuilder("");
String RightName = "";
String RightURL = "";
Map rightMap = new HashMap();
// for (RightObject ro : (ArrayList) lst) {
for (Object ro : lst) {
ro = (RightObject)ro;
String parentId = ((RightObject) ro).getParentID();
if ((parentId == null) || (parentId.trim().length() == 0)
|| (parentId.equalsIgnoreCase("0"))) {
parentId = "0";
}
if (!rightMap.containsKey(parentId)) {
rightMap.put(parentId, new ArrayList());
}
((List) rightMap.get(parentId)).add(ro);
}
List lro = (List) rightMap.get("0");
if (lro != null) {
model.append("[");
Map mt = ConfUtil.getMenus();
// for (RightObject ro : lro) {
for (Object ro : lro) {
ro = (RightObject)ro;
RightName = (String) ((Map) mt.get(((RightObject) ro).getRightID()))
.get("RIGHTNAME");
RightURL = "";
model.append('{').append("key:")
.append(JSONUtilities.quote(((RightObject) ro).getRightID()))
.append(",title:")
.append(JSONUtilities.quote(RightName));
if (rightMap.containsKey(((RightObject) ro).getRightID())) {
model.append(",isFolder:true,children:[\n");
for (RightObject ro2 : (List) rightMap.get(ro.getRightID())) {
Map rItem = (Map) mt.get(ro2.getRightID());
if (rItem != null) {
RightName = (String) rItem.get("RIGHTNAME");
model.append("\t{")
.append("key:")
.append(JSONUtilities.quote(ro2
.getRightID())).append(",title:")
.append(JSONUtilities.quote(RightName));
if (rightMap.containsKey(ro2.getRightID())) {
model.append(",isFolder:true,children:[\n");
for (RightObject ro3 : (List) rightMap.get(ro2
.getRightID())) {
if (mt.containsKey(ro3.getRightID())) {
RightName = (String) ((Map) mt.get(ro3
.getRightID()))
.get("RIGHTNAME");
RightURL = (String) ((Map) mt.get(ro3
.getRightID())).get("URL");
String BUSSFUNCID = ro3.getBussFuncID();
String split = RightURL.indexOf("?") >= 0 ? "&"
: "?";
String url = contextPath
+ RightURL.replace('\\', '/')
+ split + "RightID="
+ ro3.getRightID()
+ "&_menuID="
+ ro3.getRightID() + "&funcID="
+ BUSSFUNCID;
model.append("\t\t{")
.append("key:")
.append(JSONUtilities.quote(ro3
.getRightID()))
.append(",title:")
.append(JSONUtilities
.quote(RightName))
.append(",url:")
.append(JSONUtilities
.quote(url))
.append("},\n");
}
}
model.deleteCharAt(model.length() - 2).append(
"\t\t]");
}
model.append("},\n");
}
}
model.deleteCharAt(model.length() - 2).append("\t]");
}
model.append("},\n");
}
model.deleteCharAt(model.length() - 2).append(']');
}
return model;
}
}
字符串解析成easyui-tree的格式的更多相关文章
- 关于yyyy-MM-dd格式日期字符串,解析成LocalDateTime遇到的问题
yyyy-MM-dd -> LocalDateTime 直接把yyyy-MM-dd格式的日期字符串解析成LocalDateTime会抛出异常 try { LocalDateTime localD ...
- js字符串转日期,js字符串解析成日期,js日期解析, Date.parse小时是8点,Date.parse时间多了8小时
js字符串转日期,js字符串解析成日期,js日期解析, Date.parse小时是8点,Date.parse时间多了8小时 >>>>>>>>>&g ...
- Java8获取当前时间、新的时间日期类如Java8的LocalDate与Date相互转换、ZonedDateTime等常用操作包含多个使用示例、Java8时区ZoneId的使用方法、Java8时间字符串解析成类
下面将依次介绍 Date转Java8时间类操作 ,Java8时间类LocalDate常用操作(如获得当前日期,两个日期相差多少天,下个星期的日期,下个月第一天等) 解析不同时间字符串成对应的Java ...
- JS中将JSON的字符串解析成JSON数据格式《转》
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- js 将XML字符串解析成XML文档 --- attribute construct error--- 空白字符与空格问题
最近在做xml在线编辑器,遇到一个字符串解析成xml文档的问题,记录一下. 原始xml内容读取自xml文档 <label class="test" id="labe ...
- VBScript把json字符串解析成json对象的2个方法
这篇文章主要介绍了VBScript把json字符串解析成json对象的2个方法,本文通过MSScriptControl.ScriptControl和jscript实现,需要的朋友可以参考下 asp/v ...
- xml 字符串解析成通用的map
[quote]Stax解析技术:快速高效,根据流的形式解析xml,比dom解析技术更加快,dom解析技术是基于文档结构树的,会把整个dom文件树加载到内存进行解析[/quote] package co ...
- Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示
本例以将 字符串格式的时间转成指定的时间格式显示. 第一步.定义一个标签处理程序类,需要集成javax.servlet.jsp.tagext.TagSupport,代码如下: import java. ...
- 字符串转换成js的日期格式
js字符串转日期格式 ,JavaScript字符串转日期格式 大家都知道JS是根据结果来确定数据类型的. 当然我们也是可以转化的,下面我就介绍两种关于JS字符串类型转换成日期类型的方法, 我个人比较喜 ...
随机推荐
- mock.js 使用教程
mock.js 数据模板 #查看模板生成的数据 var data = Mock.mock({ //list|1-10 数组元素个数随机范围, id|+2 属性值递增, age|20-30数值随机范围 ...
- windows平台发消息到非UI线程.
下面的代码是介绍如何在windows平台发消息到非UI线程. 主要是'PeekMessage || GetMessage' 这两个API的应用. 当他们被调用的时候,如果当前线程还没有消息循环,就会创 ...
- poj 2228 Naptime dp
这个题目的状态还是比较好想的,dp[i][j]表示已经睡了i个时段,最后睡在j时段的最优值,但是需要处理环的情况,我的做法是算两次,第一次不处理环,第二次强制性要求第一个时段需要睡,然后查看dp[m] ...
- STC15?MSP430?ARM?DSP?
自从大学毕业以来,发现属于自己的时间越来越少,每天忙于工作,导致在大学学到的东西都好生疏,特别是大一刚开始学的模电,单片机等,现在才慢慢的抓起来,然后在这个多核处理器流行的时代,单片机貌似快过时了,但 ...
- Open virtual effects in Ubuntu 12.04LTS
Need install below packages: compiz compiz-core compiz-fusion-plugins-extra+ compiz-fusion-plugins-m ...
- C#高级编程技术复习一
从基本的Socket编程进入 (注意:这是转的一篇2011年的文章,有些知识可能该更新了!) 这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Soc ...
- POJ 3167 Cow Patterns(模式串浮动匹配)
题目链接:http://poj.org/problem?id=3167 题意:模式串可以浮动的模式匹配问题给出模式串的相对大小,需要找出模式串匹配次数和位置. 思路:统计比当前数小,和于当前数相等的, ...
- 密码输入模块getpass
getpass模块用于命令行输入密码,它提供了两个函数. getpass.getpass([prompt[, stream]]) 提示用户输入密码,同时不显示输入的密码 ...
- elasticsearch-5.0.0初见
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档 ...
- Lotus Sametime 服务器的安装和配置
IBM Lotus Sametime 是一款强大的实时协作软件,目前最新版本是 7.5.1.通过它,您不仅能够进行网络聊天,而且可以方便地召开网络会议.在网络社区中与其他人进行沟通.了解更多关于 Lo ...