博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套
阅读量:4985 次
发布时间:2019-06-12

本文共 3380 字,大约阅读时间需要 11 分钟。

原文链接:

代码

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的工具类.* 
本类为处理json的工具类* @author slj */public class JsonTools {
/** * * json转换list. *
详细说明 * @param jsonStr json字符串 * @return * @return List
> list * @throws * @author slj * @date 2013年12月24日 下午1:08:03 */ public static List
> parseJSON2List(String jsonStr){ JSONArray jsonArr = JSONArray.fromObject(jsonStr); List
> list = new ArrayList
>(); Iterator
it = jsonArr.iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } return list; } /** * * json转换map. *
详细说明 * @param jsonStr json字符串 * @return * @return Map
集合 * @throws * @author slj */ public static Map
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
> list = new ArrayList
>(); Iterator
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数据. *
通过HTTP获取JSON数据返回list * @param url 链接 * @return * @return List
> list * @throws * @author slj */ public static List
> 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数据. *
通过HTTP获取JSON数据返回map * @param url 链接 * @return * @return Map
集合 * @throws * @author slj */ public static Map
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. *
详细说明 * @param map 集合 * @return * @return String json字符串 * @throws * @author slj */ public static String mapToJson(Map
map) { Set
keys = map.keySet(); String key = ""; String value = ""; StringBuffer jsonBuffer = new StringBuffer(); jsonBuffer.append("{"); for (Iterator
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
> list = getListByUrl(url); System.out.println(list); }}

小龙点评

经过实际测试,Map嵌套可以成功转换!

转载于:https://www.cnblogs.com/wenlong/p/4524958.html

你可能感兴趣的文章
通过.frm表结构和.ibd文件恢复数据
查看>>
R语言之——字符串处理函数
查看>>
架构师速成5.1-小学gtd进阶
查看>>
Spring-aop(一)
查看>>
ucos在xp平台下开发环境搭建
查看>>
python基础入门while循环 格式化 编码初识
查看>>
cmake方式使用vlfeat
查看>>
windows下用纯C实现一个简陋的imshow:基于GDI
查看>>
struts2 自定义类型转换器
查看>>
cocos2d-x xna在有vs2012和vs2010的情况下的环境部署
查看>>
43-安装 Docker Machine
查看>>
c++学习(三):表达式和语句
查看>>
laravel框架基础知识总结
查看>>
nginx: 响应体太大
查看>>
字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略
查看>>
单例模式
查看>>
Robotium源码分析之Instrumentation进阶
查看>>
Android 交错 GridView
查看>>
(2)把BlackBerry作为插件安装到已有的Eclipse中
查看>>
VUE-es6
查看>>