• java处理json的工具类(list,map和json的之间的转换)


    需要下载第三方的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

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

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

  • 相关阅读:
    Python中的类(上)
    Django REST Framework API Guide 07
    Django REST Framework API Guide 06
    Django REST Framework API Guide 05
    Django REST Framework API Guide 04
    Django REST Framework API Guide 03
    Django REST Framework API Guide 02
    Django REST Framework API Guide 01
    Django 详解 信号Signal
    Django 详解 中间件Middleware
  • 原文地址:https://www.cnblogs.com/summary-2017/p/8965058.html
Copyright © 2020-2023  润新知