• 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;
        }
    }
    
  • 相关阅读:
    POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)
    防止登录页面出如今frame中
    android--显式跳转和隐式跳转的差别使用方法
    卫星照片
    poj 2586 Y2K Accounting Bug (贪心)
    【转】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
    【转】在Eclipse中使用PyDev进行Python开发
    【转】eclipse + Pydev 配置Python开发环境
    【转】Python自动化测试 (一) Eclipse+Pydev 搭建开发环境
    【转】Eclipse的启动问题【an error has occurred see the log file】
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10211023.html
Copyright © 2020-2023  润新知