Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套
2015-04-15 11:15
561 查看
原文链接:http://www.itjhwd.com/java_json/
代码
小龙点评
经过实际测试,Map嵌套可以成功转换!
代码
package com.itjh.mmp.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.collections.map.ListOrderedMap; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * * 处理json的工具类. * <br>本类为处理json的工具类 * @author slj */ public class JsonTools { /** * * json转换list. * <br>详细说明 * @param jsonStr json字符串 * @return * @return List<Map<String,Object>> list * @throws * @author slj * @date 2013年12月24日 下午1:08:03 */ public static List<Map<String, Object>> parseJSON2List(String jsonStr){ JSONArray jsonArr = JSONArray.fromObject(jsonStr); List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = jsonArr.iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } return list; } /** * * json转换map. * <br>详细说明 * @param jsonStr json字符串 * @return * @return Map<String,Object> 集合 * @throws * @author slj */ public static Map<String, Object> parseJSON2Map(String jsonStr){ ListOrderedMap map = new ListOrderedMap(); //最外层解析 JSONObject json = JSONObject.fromObject(jsonStr); for(Object k : json.keySet()){ Object v = json.get(k); //如果内层还是数组的话,继续解析 if(v instanceof JSONArray){ List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = ((JSONArray)v).iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } map.put(k.toString(), list); } else { map.put(k.toString(), v); } } return map; } /** * * 通过HTTP获取JSON数据. * <br>通过HTTP获取JSON数据返回list * @param url 链接 * @return * @return List<Map<String,Object>> list * @throws * @author slj */ public static List<Map<String, Object>> getListByUrl(String url){ try { //通过HTTP获取JSON数据 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2List(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } /** * * 通过HTTP获取JSON数据. * <br>通过HTTP获取JSON数据返回map * @param url 链接 * @return * @return Map<String,Object> 集合 * @throws * @author slj */ public static Map<String, Object> getMapByUrl(String url){ try { //通过HTTP获取JSON数据 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2Map(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } /** * * map转换json. * <br>详细说明 * @param map 集合 * @return * @return String json字符串 * @throws * @author slj */ public static String mapToJson(Map<String, String> map) { Set<String> keys = map.keySet(); String key = ""; String value = ""; StringBuffer jsonBuffer = new StringBuffer(); jsonBuffer.append("{"); for (Iterator<String> it = keys.iterator(); it.hasNext();) { key = (String) it.next(); value = map.get(key); jsonBuffer.append(key + ":" +"\""+ value+"\""); if (it.hasNext()) { jsonBuffer.append(","); } } jsonBuffer.append("}"); return jsonBuffer.toString(); } //test public static void main(String[] args) { String url = "http://..."; List<Map<String,Object>> list = getListByUrl(url); System.out.println(list); } }
小龙点评
经过实际测试,Map嵌套可以成功转换!
相关文章推荐
- Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套
- java处理json的工具类(list,map和json的之间的转换)
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- java解析json与map,list相互之间的转换
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- java转换xml、list、map和json
- java中String,json,Map之间的转换
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- FastJSON 转换List<T> ,Map<T,T>泛型失败 处理方法
- java处理List<String>的内容将其转换成标准json格式
- java和js中JSONObject,JSONArray,Map,String之间转换——持续更新中
- java和js中JSONObject,JSONArray,Map,String之间转换
- 通过FastJson把字符串转换成JSON和Map和List对象处理json数据
- guava处理字符串与List之间,字符串与map之间的转换
- JAVA JSONObjct.toBean() 转换为 JAVA Bean 时 JAVA Bean 带有 List 集合处理方案