本段代码主要是一个工具。费话不多说,
注:代码中的一些常量值分别为:
public static final String NUM_ZERO = "0";
public static final String NUM_ONE = "1";
public static final String NUM_UNONE = "-1";
public static final String SYMB_MH = ":";
上代码
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy; /** * 使用说明:将List<Map>转换为Tree<List<Map>> * @author yshlin * */ public class ListMap2TreeUtils { private String id; //主键 private String text; //名称 private String iconCls; //图标 private boolean leaf; //是否叶子 private boolean expanded; //是否展开 private int sort; //序号 private boolean checked; //是否选中 private Map<String, Object> attributes; private List<ListMap2TreeUtils> children; //子节点 public ListMap2TreeUtils() { super(); } /* public ListMap2TreeUtils(String id, String text, String iconCls, boolean leaf, boolean expanded, Map<String, Object> attributes, List<ListMap2TreeUtils> children) { super(); this.id = id; this.text = text; this.iconCls = iconCls; this.leaf = leaf; this.expanded = expanded; this.children = children; this.attributes = attributes; } */ public String getId() { return id; } public void setId(String id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getIconCls() { return iconCls; } public void setIconCls(String iconCls) { this.iconCls = iconCls; } public boolean isLeaf() { return leaf; } public void setLeaf(boolean leaf) { this.leaf = leaf; } public boolean isExpanded() { return expanded; } public void setExpanded(boolean expanded) { this.expanded = expanded; } public List<ListMap2TreeUtils> getChildren() { return children; } public void setChildren(List<ListMap2TreeUtils> children) { this.children = children; } public int getSort() { return sort; } public void setSort(int sort) { this.sort = sort; } public boolean isChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; } public Map<String, Object> getAttributes() { return attributes; } public void setAttributes(Map<String, Object> attributes) { this.attributes = attributes; } /** * 带属性的List转JSON树 * [id, text, sjid, checked, iconCls, attributes{v1:v2:v3}, othermc...] * 创建时间 * 创建人 yshlin * @param m2tList * @param column * @param rootName * @return * */ public static String getTreeJsonStringFull(final List<Map<String, Object>> m2tList, final String[] column, final String rootName) { if(column.length < 6){ return ""; } Map<String, List<ListMap2TreeUtils>> arrayListMap = getArrayListMapFull(m2tList,column,rootName); return listToString(arrayListMap); } /** * List转树的方法 * column = [id, mc, parentid] * 创建时间 * 创建人 yshlin * * @param m2tList * @param column * @return */ public static String getTreeJsonString(final List<Map<String, Object>> m2tList, final String[] column, final String rootName) { if(column.length < 4){ return ""; } Map<String, List<ListMap2TreeUtils>> arrayListMap = getArrayListMap(m2tList,column,rootName); return listToString(arrayListMap); } /** * 生成层次形式的JSON * * 创建时间 * 创建人 yshlin * @param arrayListMap * @return * */ private static String listToString(Map<String, List<ListMap2TreeUtils>> arrayListMap){ for (Map.Entry<String, List<ListMap2TreeUtils>> entry : arrayListMap.entrySet()) { List<ListMap2TreeUtils> smallTreeList = new ArrayList<ListMap2TreeUtils>(); smallTreeList = entry.getValue(); int nodeListSize = smallTreeList.size(); for (int i = 0; i < nodeListSize; i++) { String findID = smallTreeList.get(i).getId(); List<ListMap2TreeUtils> findList = arrayListMap.get(findID); smallTreeList.get(i).setChildren(findList); } } List<ListMap2TreeUtils> rootNodeList = arrayListMap.get(ConstantUtil.NUM_UNONE); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);//自动为我排除circle。 JSONArray jsonArray = JSONArray.fromObject(rootNodeList, jsonConfig); return jsonArray.toString(); } /** * List转map的方法 * column = [id, text, sjid, checked, othermc....] * 创建时间 * 创建人 yshlin * * @param m2tList * @param column * @return */ private static Map<String, List<ListMap2TreeUtils>> getArrayListMap(final List<Map<String, Object>> m2tList, final String[] column, final String rootName) { Map<String, List<ListMap2TreeUtils>> arrayListMap = new HashMap<String, List<ListMap2TreeUtils>>(); List<ListMap2TreeUtils> rootlist = new ArrayList<ListMap2TreeUtils>(); ListMap2TreeUtils root = new ListMap2TreeUtils(); root.setId(ConstantUtil.NUM_ZERO); root.setText(rootName); rootlist.add(root); arrayListMap.put(ConstantUtil.NUM_UNONE, rootlist); for (int i=m2tList.size()-1;i>=0;i--) { Map<String, Object> e = m2tList.get(i); ListMap2TreeUtils e2t = new ListMap2TreeUtils(); e2t.setId(e2t.getString(e, column[0])); String text = e2t.getString(e, column[1]); String check = column[3].equals("") ? ConstantUtil.NUM_ZERO : e2t.getString(e, column[3]); e2t.setChecked(check.equals("") || check.equals(ConstantUtil.NUM_ZERO) ? false : true); String textTmp = ""; if(column.length > 4){ textTmp = e2t.getOtherText(e, column, 4); } e2t.setText(text + (textTmp.equals("") ? "" : "[" + textTmp + "]")); String fatherId = e2t.getString(e, column[2]); if (arrayListMap.get(fatherId) == null) { List<ListMap2TreeUtils> list = new ArrayList<ListMap2TreeUtils>(); list.add(e2t); arrayListMap.put(fatherId, list); } else { List<ListMap2TreeUtils> valueList = arrayListMap.get(fatherId); valueList.add(e2t); arrayListMap.put(fatherId, valueList); } } return arrayListMap; } /** * List转map的方法 * column = [id, mc, parentid] * 创建时间 * 创建人 yshlin * * @param m2tList * @param column * @return */ private static Map<String, List<ListMap2TreeUtils>> getArrayListMapFull(final List<Map<String, Object>> m2tList, final String[] column, final String rootName) { Map<String, List<ListMap2TreeUtils>> arrayListMap = new HashMap<String, List<ListMap2TreeUtils>>(); List<ListMap2TreeUtils> rootlist = new ArrayList<ListMap2TreeUtils>(); ListMap2TreeUtils root = new ListMap2TreeUtils(); root.setId(ConstantUtil.NUM_ZERO); root.setText(rootName); rootlist.add(root); arrayListMap.put(ConstantUtil.NUM_UNONE, rootlist); for (int i=m2tList.size()-1;i>=0;i--) { Map<String, Object> e = m2tList.get(i); ListMap2TreeUtils e2t = new ListMap2TreeUtils(); e2t.setId(e2t.getString(e, column[0]));//id String text = e2t.getString(e, column[1]);//text String check = column[3].equals("") ? ConstantUtil.NUM_ZERO : e2t.getString(e, column[3]);//checked e2t.setChecked(check.equals("") || check.equals(ConstantUtil.NUM_ZERO) ? false : true); //other text String textTmp = ""; if(column.length > 6){ textTmp = e2t.getOtherText(e, column, 6); } e2t.setText(text + (textTmp.equals("") ? "" : "[" + textTmp + "]")); e2t.setAttributes(e2t.getColumnAttributes(e, column[5])); String fatherId = e2t.getString(e, column[2]); if (arrayListMap.get(fatherId) == null) { List<ListMap2TreeUtils> list = new ArrayList<ListMap2TreeUtils>(); list.add(e2t); arrayListMap.put(fatherId, list); } else { List<ListMap2TreeUtils> valueList = arrayListMap.get(fatherId); valueList.add(e2t); arrayListMap.put(fatherId, valueList); } } return arrayListMap; } private Map<String, Object> getColumnAttributes(Map<String, Object> m, String attr){ Map<String, Object> map = new HashMap<String, Object>(); if(PatternUtil.isNull(attr).equals("")){ return map; } String[] val = attr.split(ConstantUtil.SYMB_MH); for(int i=0;i<val.length;i++){ map.put(val[i], getString(m, val[i])); } return map; } /** * 附加显示的信息 * * 创建时间 * 创建人 yshlin * @param m * @param column * @param start * @return * */ private String getOtherText(Map<String, Object> m, String[] column, int start){ String textTmp = ""; for(int il=start;il<column.length;il++){ String tmp = getString(m, column[il]); textTmp += textTmp.equals("") ? tmp : ConstantUtil.SYMB_MH + tmp; } return textTmp; } private String getString(Map<String, Object> m, String key){ String tmp = String.valueOf(m.get(key)); return PatternUtil.isNull(tmp); } }
相关推荐
List<Bean>转换为List<Map>, List<Object>转换为List<Object> list转化为 JsonArray ,list转换JsonArray
java转换xml、list、map和json
主要介绍了在Java 8中将List转换为Map对象方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
事情: 从java后台返回List<String>类型数据,用于界面显示。但js中想获取它并操作它。直接使用EL表达式,js把它识别成字符串了。不是我想要的啊。。网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式...
将java对象list或者map转json数据不需要第三方包,直接使用就可以了,如果你传入的数据不确定是map类型还是list类型,那么自己处理一下就可以了(判断下类型,传入参数改为object)。 如果是json数据转成java对象list...
java对象转为json格式,同javascript进行数据交换。
NULL 博文链接:https://zah5897.iteye.com/blog/692038
一 传入Map转换为Json格式方法 二 传入Json格式字符串以Map存储并返回Map格式方法 三 传入Json格式字符串返回List<Map>格式方法等
通过fastjson实现了JavaBean,list<JavaBean>,MAP,list<String>等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
简单、方便、轻量级的json数据格式处理类库,示例代码: 功能: 支持普通JDK类包括任意Java ...List<SomeBean> result=(List<SomeBean>)new JsonDeserializer().deserialize(json,type); 标签:Zson
主要介绍了Java中快速把map转成json格式的方法,本文使用json-lib.jar中的JSONSerializer.toJSON方法实现快速把map转换成json,需要的朋友可以参考下
处理json格式数据。。 String s0 = "{cart_1325036696007:{goods_id:"100015",goods_name:"澳大利亚进口绵羊",goods_imgsrc:"http://192.168.1.180:7001//gwadmin/uploadimg/spxc/2011/12/9/100016_00948703_68.jpg"...
java,android map形式和数组list转json字符串 可直接调用
JackSonUtil.obj2json(方法)的使用,等,不了解的可以留言
转换json的时候需要的jar包 commons-beanutils.jar commons-collections-3.1.jar commons-lang-2.3.jar commons-logging-1.1.1.jar ezmorph-1.0.4.jar ezmorph-1.0.4.jar
将json转换为map之后,如果数值类型太多会在转换之后出现科学计数法的问题,经研究jackson源码、网上百度资料得知可以通过设置一些参数解决该问题
json格式与java类对象相互转换。json格式转换成java类对象,List,Map。类对象转换成json。
该工具类包括多重的json字符串或Map或List的相互转换,该文件包括主要的jar包,可以快捷的使用工具
用法从Maven <dependency> <groupId>com.github.jsonld-java</groupId> <artifactId>jsonld-java</artifactId> <version>0.13.3</version></dependency>代码示例// Open a valid json(-ld) input fileInputStream ...
list map转换json格式数据以及相关的jar包 list转换后格式: [{"address":"广东省惠州","name":"tom","id":1,"age":23},{"address":"广东省深圳市","name":"jone","id":2,"age":84}] map转换后格式: {"address":...