`

将JSON转换成MAP的工具类

    博客分类:
  • JSON
阅读更多
package digu.pendant.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 PandantTools {
   
    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转换工具类

    对象与json相互转换,map转json,json转map等基础工具类

    json字符串转成 Map/List

    NULL 博文链接:https://wuniu2010.iteye.com/blog/1771934

    json数据转换工具类

    bean转json字符串,JSONArray对象转换成list集合,json字符串转换成list集合,JSONObject转换成map对象,json字符串转换成map对象等等各种方法

    JAVA-JSON工具转换类

    该工具类包括多重的json字符串或Map或List的相互转换,该文件包括主要的jar包,可以快捷的使用工具

    androidmap转json字符串、list转json字符串工具类.zip

    java,android map形式和数组list转json字符串 可直接调用

    json转换java常用工具类

    json常用的工具类,包含json字符串转对象,list和map等

    将JSON字符串转换成Map对象的方法

    页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 public Map&lt;String&gt; toMap(Object object) { Map&lt;String&gt; data = new HashMap(); // 将json字符串转换成jsonObject JSONObject jsonObject...

    Java和Json互转的工具类

    解析JSON字符串成一个MAP、list、object和JAVA的类等转化成JSON语句。包括JSON相关的JAR

    json转换工具类

    1.FastJson速度快,无论序列化和反序列化,都是当之无愧的fast; 2.功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum); 3.零依赖(没有依赖其它任何类库)。

    json格式转换工具类

    可以数据从map等数据格式转换为json格式

    jsonutils json工具类

    json数据处理类 将List对象序列化为JSON文本 将对象序列化为JSON文本 将JSON对象数组序列化为JSON文本 将对象转换为List对象 将对象转换为Collection对象 ...将对象转换为List&lt;Map,Object&gt;&gt; 。。。。。

    json工具类

    json工具类:一个String字符串转换为json格式、一个obj对象转换为json格式、一个bean对象转换为json格式、一个Map集合转换为json格式、json字符串转换为List

    JSON与java对象转换的工具包

    一个工具类,提供JSON字符串与Java对象(实体Bean,Map,Collection,Object[])之间转换的方法,含有有demo、依赖包及源码,导入即可用。

    基础工具类

    MD5,BASE64,JSON,MAP,STRING

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\006 汉字转换成拼音\SpellUtils.java D:\002 我的工具类\007 字符串 D:\002 我的工具类\007 字符串\StringUtils.java D:\002 我的工具类\008 校验 D:\002 我的工具类\008 校验\一起使用 D:\002 我...

    java json 所有jar包

    java json map arraylist 转换 json jar包

    List转换为List

    List转换为List&lt;Map&gt;, List转换为List&lt;Object&gt; list转化为 JsonArray ,list转换JsonArray

    java转换万能工具类附带jar包

    一个json相互转换的万能java类(JsonUtil.java), 这个下面就是万能转换类的方法注释,懂java的相信都能看懂。 /** *//** * 从一个JSON 对象字符格式中得到一个java对象 * @param jsonString * @param ...

    DataUtil--数据工具类--数据类型判断和比较

    指定字段获取List的JSON格式数据,JSON字符串转换成对象集合(只支持6种基本数据类型),一个单元的json字符串转换成MAP对象,数组转换成集合,List深拷贝,字符串转换为short,进制转换,保留小数位数到指定位数,...

    json格式化单机版工具(实用版本)无需联网

    HiJson支持的功能包括:格式化JSON,XML转JSON,MAP转JSON,格式化XML,节点查找及文本查找等,免费,强大! Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。...

Global site tag (gtag.js) - Google Analytics