• Java 操作 JSON


    import java.util.*;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import net.sf.json.JsonConfig;
    import net.sf.json.util.CycleDetectionStrategy;
    import org.apache.commons.lang.StringUtils;
    
    
    public class JsonUtil
    {
    
        /**
         * 从一个JSON 对象字符格式中得到一个java对象
         *
         * @param jsonString
         * @param pojoCalss
         * @return
         */
        public static Object jsonstrToObject(String jsonString, Class pojoCalss)
        {
            return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss);
        }
        public static Object jsonstrToObject(String jsonString, Class pojoCalss,Map map)
        {
            return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss,map);
        }
    
    
        /**
         * 从json HASH表达式中获取一个map,改map支持嵌套功能
         *
         * @param jsonString
         * @return
         */
        public static Map<String,Object> jsonstrToMap(String jsonString)
        {
            JSONObject jsonObject = JSONObject.fromObject(jsonString);
            Iterator keyIter = jsonObject.keys();
            String key;
            Object value;
            Map<String,Object> valueMap = new HashMap<String,Object>();
    
            while (keyIter.hasNext())
            {
                key = (String) keyIter.next();
                value = jsonObject.get(key);
                valueMap.put(key, value);
            }
    
            return valueMap;
        }
    
        public static String mapToString(Map map)
        {
            JSONObject json = JSONObject.fromObject(map);
            return json.toString();
        }
        public static String mapToStringNotNull(Map map)
        {
            if(map==null)
                return "";
            JsonConfig c = new JsonConfig();
            c.setJsonPropertyFilter(new IgnoreNullProcessor());
            JSONObject json = JSONObject.fromObject(map,c);
            return json.toString();
        }
    
        /**
         * 从json数组中得到相应java数组
         *
         * @param jsonString
         * @return
         */
        public static Object[] jsonstrToObjectArray(String jsonString)
        {
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            return jsonArray.toArray();   
    
        }
    
    
        /**
         * 从json对象集合表达式中得到一个java对象列表
         *
         * @param jsonString
         * @param pojoClass
         * @return
         */
        public static List jsonstrToList(String jsonString, Class pojoClass)
        {
    
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            JSONObject jsonObject;
            Object pojoValue;
    
            List list = new ArrayList();
            for (int i = 0; i < jsonArray.size(); i++)
            {
    
                jsonObject = jsonArray.getJSONObject(i);
                pojoValue = JSONObject.toBean(jsonObject, pojoClass);
                list.add(pojoValue);
    
            }
            return list;
    
        }
    
        public static Object[] jsonstrToArray(String jsonString)
        {
            if(StringUtils.isBlank(jsonString))
                return null;
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            return jsonArray.toArray();
        }
    
        /**
         * 从json数组中解析出java字符串数组
         *
         * @param jsonString
         * @return
         */
        public static String[] jsonstrToStringArray(String jsonString)
        {
    
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            String[] stringArray = new String[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++)
            {
                stringArray[i] = jsonArray.getString(i);
    
            }
    
            return stringArray;
        }
    
        /**
         * 从json数组中解析出javaLong型对象数组
         *
         * @param jsonString
         * @return
         */
        public static Long[] jsonStrToLongArray(String jsonString)
        {
    
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            Long[] longArray = new Long[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++)
            {
                longArray[i] = jsonArray.getLong(i);
    
            }
            return longArray;
        }
    
        /**
         * 从json数组中解析出java Integer型对象数组
         *
         * @param jsonString
         * @return
         */
        public static Integer[] jsonStrToIntegerArray(String jsonString)
        {
    
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            Integer[] integerArray = new Integer[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++)
            {
                integerArray[i] = jsonArray.getInt(i);
    
            }
            return integerArray;
        }
    
        /**
         * 从json数组中解析出java Date 型对象数组,使用本方法必须保证
         * @param jsonString
         * @return
         */
        /* public static Date[] jsonstrToDateArray(String jsonString,String DataFormat){
            
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            Date[] dateArray = new Date[jsonArray.size()];
            String dateString;
            Date date;
            
            for( int i = 0 ; i<jsonArray.size() ; i++ ){
                dateString = jsonArray.getString(i);
                date = DateUtil.stringToDate(dateString, DataFormat);
                dateArray[i] = date;
            }
            return dateArray;
        }*/
    
        /**
         * 从json数组中解析出java Integer型对象数组
         *
         * @param jsonString
         * @return
         */
        public static Double[] jsonStrToDoubleArray(String jsonString)
        {
    
            JSONArray jsonArray = JSONArray.fromObject(jsonString);
            Double[] doubleArray = new Double[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++)
            {
                doubleArray[i] = jsonArray.getDouble(i);
    
            }
            return doubleArray;
        }
    
    
        /**
         * 将java对象转换成json字符串
         *
         * @param javaObj
         * @return
         */
        public static String objectToString(Object javaObj)
        {
    
            JSONObject json;
            json = JSONObject.fromObject(javaObj);
            return json.toString();
    
        }
    
        public static String objectToStringNotNull(Object javaObj)
        {
            JsonConfig c = new JsonConfig();
            c.setJsonPropertyFilter(new IgnoreNullProcessor());
    
            JSONObject json = JSONObject.fromObject(javaObj, c);
            return json.toString();
        }
    
        public static String objectToStringNotNullZero(Object javaObj)
        {
            JsonConfig c = new JsonConfig();
            c.setJsonPropertyFilter(new IgnoreNullZeroProcessor());
    
            JSONObject json = JSONObject.fromObject(javaObj, c);
            return json.toString();
        }
    
        public static String arrayToString(Collection c)
        {
            return JSONArray.fromObject(c).toString();
        }
        public static String arrayToStringNotNull(Collection c)
        {
            JsonConfig config = new JsonConfig();
            config.setJsonPropertyFilter(new IgnoreNullProcessor());
    
            return JSONArray.fromObject(c,config).toString();
        }
    
    
        /**
         * 将java对象转换成json字符串,并设定日期格式
         *
         * @param javaObj
         * @param dataFormat
         * @return
         */
        public static String objectToJsonString(Object javaObj, String dataFormat)
        {
    
            JSONObject json;
            JsonConfig jsonConfig = configJson(dataFormat);
            json = JSONObject.fromObject(javaObj, jsonConfig);
            return json.toString();
    
    
        }
    
    
        /**
         * JSON 时间解析器具
         *
         * @param datePattern
         * @return
         */
        public static JsonConfig configJson(String datePattern)
        {
            JsonConfig jsonConfig = new JsonConfig();
            jsonConfig.setExcludes(new String[]{""});
            jsonConfig.setIgnoreDefaultExcludes(false);
            jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
            jsonConfig.registerJsonValueProcessor(Date.class,
                    new DateJsonValueProcessor(datePattern));
    
            return jsonConfig;
        }
    
        /**
         * @param excludes
         * @param datePattern
         * @return
         */
        public static JsonConfig configJson(String[] excludes,
                                            String datePattern)
        {
            JsonConfig jsonConfig = new JsonConfig();
            jsonConfig.setExcludes(excludes);
            jsonConfig.setIgnoreDefaultExcludes(false);
            jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
            jsonConfig.registerJsonValueProcessor(Date.class,
                    new DateJsonValueProcessor(datePattern));
    
            return jsonConfig;
        }
    
    }
  • 相关阅读:
    VS2015编译OpenSSL1.0.2源码
    VS2015编译CURL7.54.0源码
    Mac OS Yosemite 文件批量重命名
    https 原理
    把本地仓库导入到Github
    jquery cdn加速注意事项
    关于CSS 里的_width是什么意思???
    HTML的footer置于页面最底部的方法
    html-include
    GitHub Permission to <<repository>> denied to <<username>>
  • 原文地址:https://www.cnblogs.com/mingforyou/p/4615472.html
Copyright © 2020-2023  润新知