将JSON转换成MAP的工具类
package com.xxxx.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; public class MapTools { 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);
}
}
将JSON转换成MAP的工具类的更多相关文章
- json转换成Map
		1.如果转换的是Map.或者是简单的对象 package com.gc.action; import java.util.Map; import net.sf.json.JSONObject; /** ... 
- 利用阿里巴巴封装的FastJSON来解析json并转换成map
		利用阿里巴巴封装的FastJSON来解析json并转换成map package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; i ... 
- c++ json字符串转换成map管理
		在cocos2dx for lua中,我们经常通过lua的table传入c++使用,然后早c++层操作数据. 实现步骤大致如下: table->string->c++层->通过rap ... 
- json转换成dart类 JSON to Dart
		json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ... 
- 简单的map转换成Bean的工具
		简单的map转换成Bean的工具 package com.sd.microMsg.util; import java.lang.reflect.Field; import java.lang.refl ... 
- json转换成list map集合
		import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; i ... 
- 使用fastjson的parseObject方法将json字符串转换成Map 或者List
		fastjson 转换成map HashMap<String,String> map = JSON.parseObject(jsonStr,new TypeReference<Has ... 
- .NET3.5中JSON用法以及封装JsonUtils工具类
		.NET3.5中JSON用法以及封装JsonUtils工具类 我们讲到JSON的简单使用,现在我们来研究如何进行封装微软提供的JSON基类,达到更加方便.简单.强大且重用性高的效果. 首先创建一个类 ... 
- Properties 转换成Map
		转自:http://feitianbenyue.iteye.com/blog/1759259 对于Properties 转换成Map 的问题: 第一时间想到的肯定有以下: 1. 迭代出来 再 pu ... 
随机推荐
- git stash解决代码merge出错
			最近在使用git提交代码时,遇到一个问题,就是我修改了几个文件的代码,然后又想把自己代码库里面的代码更新到最新版本,然后不出所料,代码冲突了!作为一个喜欢解决问题的程序员,怎么会被这样的问题所困住呢? ... 
- Linux:Day9(上) 压缩工具
			压缩.解压缩及归档工具 compress/uncompress:.Z # 现在已经很少在见到了 gzip/gunzip:.gz bzip2/bunzip2:.bz2 xz/unxz:.xz # 目前推 ... 
- day 25 面向对象之接口、抽象类、多态、异常处理、反射、断言
			复习 '''继承1.父类:在类后()中写父类们class A:passclass B:passclass C(A, B):pass2.属性查找顺序:自己 -> ()左侧的父类 -> 依 ... 
- jeecg入门操作—树型表单开发
			树表类型表单 表单创建,基础配置如下: 1.设置表单类型为:单表; 2.是否树选择:是; 3.设置特殊字段:[树形表单父id][树开表单列] 结果测试 
- redis session 共享 测试案列
			下载 spring redis session demo 2.分别在不同的服务器上启动 3.nginx 安装 测试 
- 使用eclipse启动tomcat里的项目时报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
			1.这种错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener刚开始看的时候 ... 
- C# 使用CsvHelper读取.csv文件
			1,先到包管理器下载 安装CsvHelper. 2,创建一个与csv文件字段名称相同的类 public class SurveyInfoModel { public string DIST_CD { ... 
- mysql-笔记-numberic 方法 操作符
			DIV 整数除法---结果舍去小数部分, /除法 ---除以0时返回 null值 -减法 % MOD 取模 ---结果为 余数 也可以用于有小数部分的数返回余数,mod(N,0)返回null值 + 加 ... 
- cocos 常用组件
			前面的话 本文将详细介绍 cocos 中的常用组件 Sprite [概述] Sprite(精灵)是 2D 游戏中最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的 ... 
- Allow Only Ajax Requests For An Action In ASP.NET Core
			ASP.NET Core offers attributes such as [HttpGet] and [HttpPost] that allow you to restrict the HTTP ... 
