在pom.xml文件中引入如下jar

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.6</version>

</dependency>

<dependency>

<groupId>commons-beanutils</groupId>

<artifactId>commons-beanutils</artifactId>

<version>1.8.0</version>

</dependency>

<dependency>

<groupId>commons-collections</groupId>

<artifactId>commons-collections</artifactId>

<version>3.2.1</version>

</dependency>

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.1.1</version>

</dependency>

<!--json-lib -->

<dependency>

<groupId>net.sf.json-lib</groupId>

<artifactId>json-lib</artifactId>

<version>2.4</version>

<classifier>jdk15</classifier>

</dependency>

下载下面的jar放入仓库相应的位置:D:\java\maven\maven_repo\net\sf\json-lib\json-lib\2.4

具体代码如下:

package com.zhy.robot.util;





import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.URL;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;





import net.sf.json.JSONArray;

import net.sf.json.JSONObject;





/**

 * @ClassName: JsonMapUtil

 * @Description: TODO(这里用一句话描述这个类的作用)

 * @author Administrator

 * @date 2016年4月27日 上午10:19:11

 * @Copyright © 2016上海通善互联网金融信息服务有限公司

 */

public class JsonMapUtil {



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;

}



public static Map<String, Object> parseJSON2Map(String jsonStr) {

Map<String, Object> map = new HashMap<String, Object>();

// 最外层解析

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;

}



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;

}



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;

}



// test

public static void main(String[] args) {

String url = "http://...";

List<Map<String, Object>> list = getListByUrl(url);

System.out.println(list);

}

}

最新文章

  1. mac 安装brew
  2. Python脚本配合Linux计划任务工作
  3. js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
  4. MYSQL的增删改查语句样码
  5. 判断网络是否连接 和 判断GPS是否连接
  6. oracle跟踪事件(dump)总结
  7. spring学习笔记之spring框架本质
  8. Oracle数据库配置方式二--使用Net Manager配置数据库
  9. servlet上传图片 服务器路径(转)
  10. Gitflow工作流程
  11. python_函数设计
  12. netstat Recv-Q和Send-Q
  13. GitHub入门与实践 读书笔记三:(1)GitHub账户注册教程
  14. Cartographer安装
  15. Oracle课程档案,第十三天
  16. phpcms基础循环
  17. C++ code:char pointers and char arrays(字符指针与字符数组)
  18. linux 虚拟机挂载光驱
  19. 使用CefSharp在.Net程序中嵌入Chrome浏览器(五)——Javascript交互
  20. PCH Warning: header stop cannot be in a macro or #if block.

热门文章

  1. Python正则表达式初识(七)
  2. CSS3新的UI方案
  3. 【Django】Web框架本质
  4. or in 、Object.keys()以及Object.getOwnPropertyNames有什么区别?
  5. 【Henu ACM Round#17 E】Tree Construction
  6. Dynamics CRM2013/2015 插件注冊工具登录后无法显示assembly列表问题的解决的方法
  7. ajax动态更新下拉列表
  8. android 图片特效处理之光照效果
  9. Linux下MySQL导入导出数据库
  10. 值得学习的CSS知识