zoukankan      html  css  js  c++  java
  • Java-JsonUtil工具类

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    public class JsonUtil {
        /**
         * 对象转换成JSON字符串
         * 
         * @param obj
         *            需要转换的对象
         * @return 对象的string字符
         */
        public static String objToJson(Object obj) {
            JSONObject jSONObject = JSONObject.fromObject(obj);
            return jSONObject.toString();
        }
    
        /**
         * JSON字符串转换成对象
         * 
         * @param jsonString
         *            需要转换的字符串
         * @param type
         *            需要转换的对象类型
         * @return 对象
         */
        public static <T> T jsonToBean(String jsonString, Class<T> type) {
            JSONObject jsonObject = JSONObject.fromObject(jsonString);
            return jsonToBean(jsonObject, type);
        }
    
        /**
         * jsonObject 转换为javabean
         * 
         * @param jsonObject
         * @param type
         * @return
         */
        @SuppressWarnings("unchecked")
        public static <T> T jsonToBean(JSONObject jsonObject, Class<T> type) {
            return (T) JSONObject.toBean(jsonObject, type);
        }
    
        /**
         * json 转换为 beanList
         * 
         * @param jsonArray
         * @param type
         * @return
         */
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public static List jsonToBeanList(JSONArray jsonArray, Class type) {
            List<Object> list = new ArrayList<Object>();
            for (Object obj : jsonArray) {
                if (obj instanceof JSONArray) {
                    list.add(jsonToBeanList((JSONArray) obj, type));
                } else if (obj instanceof JSONObject) {
                    list.add(jsonToBean((JSONObject) obj, type));
                } else {
                    list.add(obj);
                }
            }
            return list;
        }
    
        /**
         * 将JSONArray对象转换成list集合
         * 
         * @param jsonArr
         * @return
         */
        public static List<Object> jsonToMapList(JSONArray jsonArr) {
            List<Object> list = new ArrayList<Object>();
            for (Object obj : jsonArr) {
                if (obj instanceof JSONArray) {
                    list.add(jsonToMapList((JSONArray) obj));
                } else if (obj instanceof JSONObject) {
                    list.add(jsonToMap((JSONObject) obj));
                } else {
                    list.add(obj);
                }
            }
            return list;
        }
    
        /**
         * 将json字符串转换成map对象
         * 
         * @param json
         * @return
         */
        public static Map<String, Object> jsonToMap(String json) {
            JSONObject obj = JSONObject.fromObject(json);
            return jsonToMap(obj);
        }
    
        /**
         * 将JSONObject转换成map对象
         * 
         * @param json
         * @return
         */
        public static Map<String, Object> jsonToMap(JSONObject obj) {
            Set<?> set = obj.keySet();
            Map<String, Object> map = new HashMap<String, Object>(set.size());
            for (Object key : obj.keySet()) {
                Object value = obj.get(key);
                if (value instanceof JSONArray) {
                    map.put(key.toString(), jsonToMapList((JSONArray) value));
                } else if (value instanceof JSONObject) {
                    map.put(key.toString(), jsonToMap((JSONObject) value));
                } else {
                    map.put(key.toString(), obj.get(key));
                }
            }
            return map;
        }
    }
    
  • 相关阅读:
    Linux内核从原理到代码详解
    linux内核研究-8-块设备I/O层
    《Linux内核分析》课程总结
    Nginx 重写规则指南1
    Nginx初探
    Nginx源码分析:3张图看懂启动及进程工作原理
    nginx源码分析 +redis的那些事儿
    I/O 模型及其设计模式
    高并发性能调试经验分享
    myawr
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10211023.html
Copyright © 2011-2022 走看看