java与json互转(日期处理)

1、jar包

    commons-beanutils-xxx.jar

    commons-collections-xxx.jar

    commons-lang-xxx.jar

    commons-logging-xxx.jar

    ezmorph-xxx.jar

    json-lib-xxx.jar

2、java代码及测试类

package com.zhaolp.json;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午10:28:02
 * 功能:json测试基类
 */
public class JsonBaseBean implements Serializable {
	private static final long serialVersionUID = 2425694623661801705L;
	private Date monitorDate;//时间
	private String cityCode;//城市代码
	private double data;
	private List<String> cityCodeList;
	public Date getMonitorDate() {
		return monitorDate;
	}
	public void setMonitorDate(Date monitorDate) {
		this.monitorDate = monitorDate;
	}
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	public double getData() {
		return data;
	}
	public void setData(double data) {
		this.data = data;
	}
	public List<String> getCityCodeList() {
		return cityCodeList;
	}
	public void setCityCodeList(List<String> cityCodeList) {
		this.cityCodeList = cityCodeList;
	}
}
package com.zhaolp.json;

import java.util.Date;

import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;
import net.sf.json.util.PropertyFilter;

import org.apache.commons.lang3.StringUtils;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午10:39:27
 * 功能:json与javaBean互转
 */
public class Json2JavaBean {
	private String dateFormat = "yyyy-MM-dd";
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 上午10:42:39
	 * @param json
	 * @return java 对象
	 * 功能:json转java对象
	 */
	public JsonBaseBean jsonToJava(String json){
		JsonBaseBean jsonBaseBean = null;
		try {
			if(StringUtils.isNotBlank(json)){
				//处理json时间属性格式
				JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[]{dateFormat}));
				JSONObject jsonObj = JSONObject.fromObject(json);
				jsonBaseBean = (JsonBaseBean)JSONObject.toBean(jsonObj, JsonBaseBean.class);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jsonBaseBean;
	}
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 上午11:04:26
	 * @param jsonBaseBean
	 * @return json字符串
	 * 功能:java对象转json
	 */
	public String javaToJson(JsonBaseBean jsonBaseBean){
		String json = null;
		try {
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(dateFormat));
	        JSONObject array = JSONObject.fromObject(jsonBaseBean, jsonConfig);
	        json = array.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 下午1:35:06
	 * @param jsonBaseBean
	 * @return json字符串
	 * 功能:java对象转json过滤属性
	 */
	public String jsonFilter(JsonBaseBean jsonBaseBean){
		String json = null;
		try {
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(dateFormat));
			//过滤属性
	        jsonConfig.setJsonPropertyFilter(new PropertyFilter() { 
	            public boolean apply(Object source, String name, Object value) { 
	                if ("cityCodeList".equals(name)) { 
	                    return true; 
	                } 
	                return false; 
	            } 
        	});
	        JSONObject array = JSONObject.fromObject(jsonBaseBean, jsonConfig);
	        json = array.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}
}
package com.zhaolp.json;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午11:12:19
 * 功能:测试类
 */
public class JsonTest {
	public static void main(String[] args) {
		//创建一个JsonBaseBean
		JsonBaseBean jsonBaseBean = new JsonBaseBean();
		jsonBaseBean.setCityCode("120001");
		jsonBaseBean.setData(1.22);
		jsonBaseBean.setMonitorDate(new Date());
		List<String> list = new ArrayList<String>();
		list.add("130001");
		list.add("140001");
		jsonBaseBean.setCityCodeList(list);
		//调用转换方法 对象转json
		Json2JavaBean json2JavaBean = new Json2JavaBean();
		String json = json2JavaBean.javaToJson(jsonBaseBean);
		System.out.println("json:"+json);
		//json转java对象
		JsonBaseBean aaa = json2JavaBean.jsonToJava(json);
		System.out.println(aaa.getMonitorDate());
		//过滤属性
		String jsonFilter = json2JavaBean.jsonFilter(jsonBaseBean);
		System.out.println(jsonFilter);
	}
}

 java转json日期处理类

package com.zhaolp.json;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
* JSON 日期格式处理(java转化为JSON)
* @author zhaolunpeng
*/  
public class JsonDateValueProcessor implements JsonValueProcessor {
	 /**
     * datePattern
     */ 
    private String datePattern; 
    /**
     * @param format
     */ 
    public JsonDateValueProcessor(String format) { 
        super(); 
        this.datePattern = format; 
    } 
 
    /**
     * @param value
     * @param jsonConfig
     * @return Object
     */ 
    public Object processArrayValue(Object value, JsonConfig jsonConfig) { 
        return process(value); 
    } 
 
    /**
     * @param key
     * @param value
     * @param jsonConfig
     * @return Object
     */ 
    public Object processObjectValue(String key, Object value, 
            JsonConfig jsonConfig) { 
        return process(value); 
    } 
 
    /**
     * process
     * @param value
     * @return
     */ 
    private Object process(Object value) { 
        try { 
            if (value instanceof Date) { 
                SimpleDateFormat sdf = new SimpleDateFormat(datePattern, 
                        Locale.UK); 
                return sdf.format((Date) value); 
            } 
            return value == null ? "" : value.toString(); 
        } catch (Exception e) { 
            return ""; 
        } 
 
    } 
}

猜你喜欢

转载自963084302.iteye.com/blog/2268916