java操作的json通用类

package com.baiyyy.polabs.util.json;        

       

import java.text.ParseException;

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;

       

/**     

 * 处理json的工具类,负责json数据转换成java对象和java对象转换成json     

 *      

 * @author yongtree     

 * @date 2008-11-22 上午10:47:13     

 * @version 1.0     

 */       

publicclass JsonUtil {        

       

    /**     

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

     *      

     * @param jsonString     

     * @param pojoCalss     

     * @return     

     */       

    publicstatic 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     

     */       

    publicstatic Map getMap4Json(String jsonString) {        

        JSONObject jsonObject = JSONObject.fromObject(jsonString);         

        Iterator keyIter = jsonObject.keys();        

        String key;        

        Object value;        

        Map valueMap = newHashMap();        

       

        while (keyIter.hasNext()) {        

            key = (String) keyIter.next();        

            value = jsonObject.get(key);        

            valueMap.put(key, value);        

        }        

       

        return valueMap;        

    }        

       

       

    /**     

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

     *      

     * @param jsonString     

     * @return     

     */       

    publicstatic Object[] getObjectArray4Json(String jsonString) {        

        JSONArray jsonArray = JSONArray.fromObject(jsonString);        

        return jsonArray.toArray();        

       

    }        

       

       

    /**     

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

     *      

     * @param jsonString     

     * @param pojoClass     

     * @return     

     */       

    publicstatic List getList4Json(String jsonString, Class pojoClass) {        

       

        JSONArray jsonArray = JSONArray.fromObject(jsonString);        

        JSONObject jsonObject;        

        Object pojoValue;        

       

        List list = newArrayList();        

        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     

     */        

    publicstatic 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     

     */       

    publicstatic 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     

     */       

    publicstatic 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     

     * @throws ParseException     

     */       

    publicstatic Date[] getDateArray4Json(String jsonString, String DataFormat)        

            throws ParseException {        

       

        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.parseDate(dateString, DataFormat);        

            dateArray[i] = date;        

       

        }         

        return dateArray;        

    }        

       

       

    /**     

     * json数组中解析出java Integer型对象数组     

     *      

     * @param jsonString     

     * @return     

     */       

    publicstatic 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     

     */       

    publicstatic String getJsonString4JavaPOJO(Object javaObj) {        

       

        JSONObject json;        

        json = JSONObject.fromObject(javaObj);        

        return json.toString();        

       

    }        

       

    /**     

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

     *      

     * @param javaObj     

     * @param dataFormat     

     * @return     

     */        

    publicstatic String getJsonString4JavaPOJO(Object javaObj,        

            String dataFormat) {        

       

        JSONObject json;        

        JsonConfig jsonConfig = configJson(dataFormat);        

        json = JSONObject.fromObject(javaObj, jsonConfig);        

        return json.toString();        

       

    }        

       

    /**     

     * JSON 时间解析器具     

     *      

     * @param datePattern     

     * @return     

     */       

    publicstatic JsonConfig configJson(String datePattern) {        

        JsonConfig jsonConfig = newJsonConfig();        

        jsonConfig.setExcludes(new String[] { "" });        

        jsonConfig.setIgnoreDefaultExcludes(false);        

        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        

        jsonConfig.registerJsonValueProcessor(Date.class,        

                new JsonDateValueProcessor(datePattern));        

       

        return jsonConfig;        

    }        

       

       

    /**     

     * 除去不想生成的字段(特别适合去掉级联的对象)+时间转换     

     * @param excludes 除去不想生成的字段     

     * @param datePattern      

     * @return     

     */       

    publicstatic JsonConfig configJson(String[] excludes, String datePattern) {        

        JsonConfig jsonConfig = newJsonConfig();        

        jsonConfig.setExcludes(excludes);        

        jsonConfig.setIgnoreDefaultExcludes(true);        

        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        

        jsonConfig.registerJsonValueProcessor(Date.class,        

                new JsonDateValueProcessor(datePattern));        

       

        return jsonConfig;        

    }        

       

}   

 

*******************************************************************************************

日期转换

*******************************************************************************************

 

package com.baiyyy.polabs.util.json;        

       

import java.text.SimpleDateFormat;        

import java.util.Date;        

       

import net.sf.json.JsonConfig;        

import net.sf.json.processors.JsonValueProcessor;         

       

/**     

 *      

 * @author yongtree     

 * @date 2008-11-22 上午10:54:19     

 * @version 1.0     

 */       

publicclass JsonDateValueProcessor implements JsonValueProcessor {           

              

    private String format = "yyyy-MM-dd HH:mm:ss";           

          

    publicJsonDateValueProcessor() {           

          

    }           

          

    publicJsonDateValueProcessor(String format) {           

        this.format = format;           

    }            

          

    public Object processArrayValue(Object value, JsonConfig jsonConfig) {           

        String[] obj = {};           

        if (value instanceof Date[]) {           

            SimpleDateFormat sf = newSimpleDateFormat(format);           

            Date[] dates = (Date[]) value;           

            obj = new String[dates.length];           

            for (int i = 0; i < dates.length; i++) {           

                obj[i] = sf.format(dates[i]);           

            }           

        }           

        return obj;           

    }           

          

    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {           

        if (value instanceof Date) {           

            String str = newSimpleDateFormat(format).format((Date) value);           

            return str;           

        }           

        return value == null ? null : value.toString();           

    }           

          

    public String getFormat() {           

        returnformat;           

    }           

          

    publicvoidsetFormat(String format) {           

        this.format = format;           

    }           

          

}       

 

package com.baiyyy.polabs.util.json;        

       

import java.text.ParseException;

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;

       

/**     

 * 处理json的工具类,负责json数据转换成java对象和java对象转换成json     

 *      

 * @author yongtree     

 * @date 2008-11-22 上午10:47:13     

 * @version 1.0     

 */       

publicclass JsonUtil {        

       

    /**     

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

     *      

     * @param jsonString     

     * @param pojoCalss     

     * @return     

     */       

    publicstatic 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     

     */       

    publicstatic Map getMap4Json(String jsonString) {        

        JSONObject jsonObject = JSONObject.fromObject(jsonString);         

        Iterator keyIter = jsonObject.keys();        

        String key;        

        Object value;        

        Map valueMap = newHashMap();        

       

        while (keyIter.hasNext()) {        

            key = (String) keyIter.next();        

            value = jsonObject.get(key);        

            valueMap.put(key, value);        

        }        

       

        return valueMap;        

    }        

       

       

    /**     

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

     *      

     * @param jsonString     

     * @return     

     */       

    publicstatic Object[] getObjectArray4Json(String jsonString) {        

        JSONArray jsonArray = JSONArray.fromObject(jsonString);        

        return jsonArray.toArray();        

       

    }        

       

       

    /**     

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

     *      

     * @param jsonString     

     * @param pojoClass     

     * @return     

     */       

    publicstatic List getList4Json(String jsonString, Class pojoClass) {        

       

        JSONArray jsonArray = JSONArray.fromObject(jsonString);        

        JSONObject jsonObject;        

        Object pojoValue;        

       

        List list = newArrayList();        

        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     

     */        

    publicstatic 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     

     */       

    publicstatic 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     

     */       

    publicstatic 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     

     * @throws ParseException     

     */       

    publicstatic Date[] getDateArray4Json(String jsonString, String DataFormat)        

            throws ParseException {        

       

        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.parseDate(dateString, DataFormat);        

            dateArray[i] = date;        

       

        }         

        return dateArray;        

    }        

       

       

    /**     

     * json数组中解析出java Integer型对象数组     

     *      

     * @param jsonString     

     * @return     

     */       

    publicstatic 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     

     */       

    publicstatic String getJsonString4JavaPOJO(Object javaObj) {        

       

        JSONObject json;        

        json = JSONObject.fromObject(javaObj);        

        return json.toString();        

       

    }        

       

    /**     

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

     *      

     * @param javaObj     

     * @param dataFormat     

     * @return     

     */        

    publicstatic String getJsonString4JavaPOJO(Object javaObj,        

            String dataFormat) {        

       

        JSONObject json;        

        JsonConfig jsonConfig = configJson(dataFormat);        

        json = JSONObject.fromObject(javaObj, jsonConfig);        

        return json.toString();        

       

    }        

       

    /**     

     * JSON 时间解析器具     

     *      

     * @param datePattern     

     * @return     

     */       

    publicstatic JsonConfig configJson(String datePattern) {        

        JsonConfig jsonConfig = newJsonConfig();        

        jsonConfig.setExcludes(new String[] { "" });        

        jsonConfig.setIgnoreDefaultExcludes(false);        

        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        

        jsonConfig.registerJsonValueProcessor(Date.class,        

                new JsonDateValueProcessor(datePattern));        

       

        return jsonConfig;        

    }        

       

       

    /**     

     * 除去不想生成的字段(特别适合去掉级联的对象)+时间转换     

     * @param excludes 除去不想生成的字段     

     * @param datePattern      

     * @return     

     */       

    publicstatic JsonConfig configJson(String[] excludes, String datePattern) {        

        JsonConfig jsonConfig = newJsonConfig();        

        jsonConfig.setExcludes(excludes);        

        jsonConfig.setIgnoreDefaultExcludes(true);        

        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        

        jsonConfig.registerJsonValueProcessor(Date.class,        

                new JsonDateValueProcessor(datePattern));        

       

        return jsonConfig;        

    }        

       

}   

 

*******************************************************************************************

日期转换

*******************************************************************************************

 

package com.baiyyy.polabs.util.json;        

       

import java.text.SimpleDateFormat;        

import java.util.Date;        

       

import net.sf.json.JsonConfig;        

import net.sf.json.processors.JsonValueProcessor;         

       

/**     

 *      

 * @author yongtree     

 * @date 2008-11-22 上午10:54:19     

 * @version 1.0     

 */       

publicclass JsonDateValueProcessor implements JsonValueProcessor {           

              

    private String format = "yyyy-MM-dd HH:mm:ss";           

          

    publicJsonDateValueProcessor() {           

          

    }           

          

    publicJsonDateValueProcessor(String format) {           

        this.format = format;           

    }            

          

    public Object processArrayValue(Object value, JsonConfig jsonConfig) {           

        String[] obj = {};           

        if (value instanceof Date[]) {           

            SimpleDateFormat sf = newSimpleDateFormat(format);           

            Date[] dates = (Date[]) value;           

            obj = new String[dates.length];           

            for (int i = 0; i < dates.length; i++) {           

                obj[i] = sf.format(dates[i]);           

            }           

        }           

        return obj;           

    }           

          

    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {           

        if (value instanceof Date) {           

            String str = newSimpleDateFormat(format).format((Date) value);           

            return str;           

        }           

        return value == null ? null : value.toString();           

    }           

          

    public String getFormat() {           

        returnformat;           

    }           

          

    publicvoidsetFormat(String format) {           

        this.format = format;           

    }           

          

}       

 

posted @ 2013-07-09 11:08  雏鹰的梦想  阅读(294)  评论(0)    收藏  举报