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;
        }
    }
    
  • 相关阅读:
    NOI 2019 网络同步赛 游记
    洛谷 P3695 CYaRon!语 题解 【模拟】【字符串】
    洛谷 P2482 loj #2885 [SDOI2010]猪国杀 题解【模拟】【贪心】【搜索】
    Spring MVC @ResponseBody返回中文字符串乱码问题
    Hibernate4中使用getCurrentSession报Could not obtain transaction-synchronized Session for current thread
    @Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml
    @RestController注解下返回到jsp视图页面
    Mysql引起的spring事务失效
    Eclipse中启动tomcat报错:A child container failed during start
    xshell不能输入中文,显示为??
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10211023.html
Copyright © 2011-2022 走看看