zoukankan      html  css  js  c++  java
  • 处理json的工具类({本类为处理json的工具类})

    <jackson.version>2.2.3</jackson.version>
    
    <!-- json -->
    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.3</version>
        <classifier>jdk15</classifier>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.1.41</version>
    </dependency>
    <!-- jackson json -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    package com.dsj.gdbd.utils.jsonUtil;
    
    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 java.util.Set;
    
    import org.apache.commons.collections.map.ListOrderedMap;
    import org.apache.commons.lang.ObjectUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.log4j.Logger;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    /**
     * 
     * 处理json的工具类. <br>
     * 本类为处理json的工具类
     * 
     * @author slj
     */
    public class JsonTools {
        private static Logger log = Logger.getLogger(JsonTools.class);
        /**
         * 
         * 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) {
                log.error("Exception", e);
            }
            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) {
                log.error("Exception", e);
            }
            return null;
        }
    
        /**
         * 
         * map转换json. <br>
         * 详细说明
         * 
         * @param map
         *            集合
         * @return
         * @return String json字符串
         * @throws @author
         *             slj
         */
        public static String mapToJson(Map<String, Object> map) {
            Set<String> keys = map.keySet();
            String key="";
            StringBuffer jsonBuffer = new StringBuffer();
            jsonBuffer.append("{");
            for (Iterator<String> it = keys.iterator(); it.hasNext();) {
                key = (String) it.next();
                String value = ObjectUtils.toString(map.get(key), "");
                jsonBuffer.append(key + ":" + """ + value + """);
                if (it.hasNext()) {
                    jsonBuffer.append(",");
                }
            }
            jsonBuffer.append("}");
            return jsonBuffer.toString();
        }
        
        
    
        /**
         * 
         * map转换json. <br>
         * 详细说明
         * 
         * @param map
         *            集合
         * @return
         * @return String json字符串
         * @throws @author
         *             slj
         */
        public static String mapToKvJson(Map<String, Object> map) {
            Set<String> keys = map.keySet();
               JSONArray jsonArray=new    JSONArray();
                String key = "";
            for (Iterator<String> it = keys.iterator(); it.hasNext();) {
                JSONObject object = new JSONObject();  
                key = (String) it.next();
                String value = ObjectUtils.toString(map.get(key), "");
                  object.put("key", key);  
                  object.put("value", value);  
                  jsonArray.add(object);
            }
            return jsonArray.toString();
        }
        
        
         /**
         * key     value转map
            [{"name":"sEcho","value":1},{"name":"iColumns","value":3}]转map
         * @param jsonStr
         * @return
         */
        public static Map<String, Object> parsePageMap(String jsonStr){  
            Map<String, Object> map = new HashMap<String, Object>();  
            //最外层解析  
            if(StringUtils.isNotBlank(jsonStr)){
                jsonStr=jsonStr.replace("&quot;", """);
            }
            JSONArray jsonArray = JSONArray.fromObject(jsonStr); 
            for (int i = 0; i < jsonArray.size(); i++) {
                JSONObject json = (JSONObject) jsonArray.get(i);
                map.put(json.getString("name"), json.getString("value"));
    
            }
           
            return map;  
        } 
    
        // test
        public static void main(String[] args) {
            Map<String, Object> map=new HashMap<String, Object>();
            map.put("2", "1");
            map.put("3", "1");
            System.out.println(mapToKvJson(map));
        }
    }
  • 相关阅读:
    asp.net 生成静态页
    修改数据库字段以及字段类型
    int ,int?,int??
    ASP.NET JS常用方法类
    遍历repeater中的控件的几种方式
    .net获取ip地址
    asp.net中DataList和Repeater的使用
    Web.config中注册用户控件和自定义控件
    dos 必知八项命令
    ASP.NET配置文件Web.config
  • 原文地址:https://www.cnblogs.com/mlq2017/p/10260187.html
Copyright © 2011-2022 走看看