您的位置:首页 > 编程语言 > Java开发

java处理JSON格式数据的通用类-分享

2016-04-18 15:43 537 查看



/**


 * Copyright (c) linkwise 2007-2009 corporation.  


 * All rights reserved


 */


package com.linghui.common.util;




import java.util.ArrayList;


import java.util.Date;


import java.util.HashMap;


import java.util.Iterator;


import java.util.List;


import java.util.Map;




import net.sf.json.JSONArray;


import net.sf.json.JSONObject;


import net.sf.json.JsonConfig;


import net.sf.json.util.CycleDetectionStrategy;




import com.linghui.common.util.DateUtil;


import com.linghui.common.util.jsonutil.DateJsonValueProcessor;




/**


 * @author </br> <a href="mailto:fx19800215@163.com"> robert.feng</a>


 *


 */


public class JsonUtil {




    /**


     * 从一个JSON 对象字符格式中得到一个java对象


     * @param jsonString


     * @param pojoCalss


     * @return


     */


    public static Object getObject4JsonString(String jsonString,Class pojoCalss){


        Object pojo;


        JSONObject jsonObject = JSONObject.fromObject( jsonString );  


        pojo = JSONObject.toBean(jsonObject,pojoCalss);


        return pojo;


    }


    


    


    


    /**


     * 从json HASH表达式中获取一个map,改map支持嵌套功能


     * @param jsonString


     * @return


     */


    public static Map getMap4Json(String jsonString){


        JSONObject jsonObject = JSONObject.fromObject( jsonString );  


        Iterator  keyIter = jsonObject.keys();


        String key;


        Object value;


        Map valueMap = new HashMap();




        while( keyIter.hasNext())


        {


            key = (String)keyIter.next();


            value = jsonObject.get(key);


            valueMap.put(key, value);


        }


        


        return valueMap;


    }


    


    


    /**


     * 从json数组中得到相应java数组


     * @param jsonString


     * @return


     */


    public static Object[] getObjectArray4Json(String jsonString){


        JSONArray jsonArray = JSONArray.fromObject(jsonString);


        return jsonArray.toArray();


        


    }


    


    


    /**


     * 从json对象集合表达式中得到一个java对象列表


     * @param jsonString


     * @param pojoClass


     * @return


     */


    public static List getList4Json(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;




    }


    


    /**


     * 从json数组中解析出java字符串数组


     * @param jsonString


     * @return


     */


    public static String[] getStringArray4Json(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[] getLongArray4Json(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[] getIntegerArray4Json(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[] getDateArray4Json(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[] getDoubleArray4Json(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 getJsonString4JavaPOJO(Object javaObj){


        


        JSONObject json;


        json = JSONObject.fromObject(javaObj);


        return json.toString();


        


    }


    


    


    


    


    /**


     * 将java对象转换成json字符串,并设定日期格式


     * @param javaObj


     * @param dataFormat


     * @return


     */


    public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat){


        


        JSONObject json;


        JsonConfig jsonConfig = configJson(dataFormat);


        json = JSONObject.fromObject(javaObj,jsonConfig);


        return json.toString();


        


        


    }


    


    


    


    /**


     * @param args


     */


    public static void main(String[] args) {


        // TODO 自动生成方法存根




    }


    


    /**


     * 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;   


        }  




}




/**


 * linkwise


 */


package com.linghui.common.util.jsonutil;




import java.text.DateFormat;


import java.text.SimpleDateFormat;


import java.util.Date;




import net.sf.json.JsonConfig;


import net.sf.json.processors.JsonValueProcessor;








/**


 *  @author </br> <a href="mailto:fx19800215@163.com"> robert.feng</a>


 *


 */


public class DateJsonValueProcessor implements JsonValueProcessor {




    

<img 

http://fengjianchao-vip.iteye.com/blog/981577
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: