java json操作的通用类

来源:互联网 发布:网络棋牌游戏输钱 编辑:程序博客网 时间:2024/05/16 10:05
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      
 */        
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      
     * @throws ParseException      
     */        
    public static 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      
     */        
    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();         
        
    }         
        
    /**      
     * 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 JsonDateValueProcessor(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(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      
 */        
public class JsonDateValueProcessor implements JsonValueProcessor {            
               
    private String format = "yyyy-MM-dd HH:mm:ss";            
           
    public JsonDateValueProcessor() {            
           
    }            
           
    public JsonDateValueProcessor(String format) {            
        this.format = format;            
    }            
           
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {            
        String[] obj = {};            
        if (value instanceof Date[]) {            
            SimpleDateFormat sf = new SimpleDateFormat(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 = new SimpleDateFormat(format).format((Date) value);            
            return str;            
        }            
        return value == null ? null : value.toString();            
    }            
           
    public String getFormat() {            
        return format;            
    }            
           
    public void setFormat(String format) {            
        this.format = format;            
    }            
           
}        

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 飞机上婴儿啼哭怎么办 飞机儿童陪护手续怎么办 孕妇感冒鼻子堵怎么办 孕妇用了眼药水怎么办 孕妇用眼药水了怎么办 错过了登机时间怎么办 过了登机时间怎么办 孩子不喜欢做作业怎么办 宝宝腿不一样粗怎么办 一个小腿肿了怎么办 左右小腿不一样粗怎么办 小孩不敢自己睡怎么办 小孩不一个人睡怎么办 晚上一个人睡觉害怕怎么办 孩子自己睡害怕怎么办 小孩晚上睡觉怕怎么办 小孩分房睡害怕怎么办 坐飞机不认识字怎么办 科目一不识字怎么办 孩子不自己睡觉怎么办 70岁老人坐高铁怎么办 八岁儿童怎么办护照 第一次坐飞机有点紧张怎么办 坐飞机恐高耳鸣怎么办 火车坐过站怎么办 凌晨的火车应该怎么办 高铁坐过一站怎么办 宝宝断奶瘦了怎么办 第一次坐飞机怕晕机怎么办 焦虑症怕坐飞机怎么办 新生宝宝老是哭闹怎么办 宝宝坐飞机后哭闹怎么办 飞机经济舱不支持退票怎么办 证件被单位扣押怎么办 小孩高烧41度怎么办 国际航班未成年托管怎么办手续 如果飞机上发烧怎么办 不到二岁飞机票怎么办 做飞机婴儿票怎么办 公司拖欠报销款怎么办 高考志愿滑档怎么办