需要下载第三方的jar :net.sf.json

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); } }

引用原文:https://blog.csdn.net/shubingzhuoxue/article/details/46623977

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,文章可以转载,无需版权。希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

转载于:https://www.cnblogs.com/summary-2017/p/8965058.html

java处理json的工具类(list,map和json的之间的转换)相关推荐

  1. 阿里巴巴json工具类,map转json字符串,map转bean类型

    1:要求是需要将map转bean类型 //使用json工具类导入阿里巴巴的json包 import com.alibaba.fastjson.JSON; //第一步先将map类型转为json字符串 S ...

  2. java json 工具类_Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java ...

  3. java 自定义json解析注解 复杂json解析 工具类

    java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...

  4. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

  5. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  6. [Android开发] Json解析工具类,一个类搞定Json的解析

    一.简介 利用递归的方式反射解析到bean里面 二.详细代码 1. Json格式 例如服务器指定规定json格式为: {"code": "--" , // 返回 ...

  7. java 代理ip工具类_Java基础之java处理ip的工具类

    java处理ip的工具类,包括把long类型的Ip转为一般Ip类型.把xx.xx.xx.xx类型的转为long类型.根据掩码位获取掩码.根据 ip/掩码位 计算IP段的起始IP.根据 ip/掩码位 计 ...

  8. 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)

    Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...

  9. java Excel导入导出工具类 及使用demo

    java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...

最新文章

  1. 任务计划cron、服务管理工具chkconfig/systemctl
  2. Tensorflow实现简单神经网络
  3. android保持服务不休眠,Android开发保持屏幕常亮和CPU不休眠唤醒状态
  4. 个人收集一些程序员面试题目(一) 一起分享
  5. python——爬虫实现网页信息抓取
  6. LocalDate,LocalDate,LocateDateTime的常用方法
  7. 十大常用算法(C++版)
  8. Android软件盘(EditText)的搜索功能
  9. linux 判断某进程 前台还是后台,Linux进程管理——进程前后台(优先级)以及作业控制等...
  10. c语言程序设计谭浩强题库,谭浩强c语言程序设计习题答案
  11. 2022年浙江省电子设计大赛C题小车跟随系统
  12. switch日文键盘打中文_从塞尔达到动森,游戏中使用的中文字体有什么问题?
  13. 找不到实时聊天软件?给你推荐电商企业都在用的!
  14. 联想T260 G3服务器系统安装手册
  15. Loj #3124. 「CTS2019 | CTSC2019」氪金手游
  16. Post方式与参数详解
  17. Linux对大于2T的磁盘分区方法及创建逻辑卷LVM
  18. 新闻推荐:谷歌新闻、搜狐新闻、今日头条调研分析
  19. win32com设置excel打印格式
  20. 基于Fitnesse的验收测试实验

热门文章

  1. Anagram Groups(字符串)
  2. Could not find artifact com.sun:tools:jar:1.5.0
  3. Intel开发工具之VTune
  4. 套接字,TCP,UDP
  5. BZOJ4199 NOI2015品酒大会(后缀树)
  6. [Android] TabLayout设置下划线(Indicator)宽度
  7. (9) tomcat中实现同一虚拟机中所有应用程序单点登录SSO
  8. (转) 通过UUID在vSphere虚拟机内外识别硬盘
  9. Redis Lock
  10. FZU 2108 Mod problem