对象转Json时,Date类型格式化问题

object是一个对象,该对象中有一个字段为Date类型

使用JSONObject obj = JSONObject.fromObject(object);将Object转成json时

Date类型字段会出现问题,会转化成一个Json内嵌的对象

如何在Date类型转Json时进行格式化呢?

1.自定义日期类型格式化转化类

/**
 * 实现Date类型转json时的格式化问题
 */
public class JsonDateValueProcessor implements JsonValueProcessor {
	
	private String format ="yyyy-MM-dd";
	
	public Object processArrayValue(Object value, JsonConfig config) {
		return process(value);
	}
 
	public Object processObjectValue(String key, Object value, JsonConfig config) {
		return process(value);
	}
	
	private Object process(Object value){
		
		if(value instanceof Date){
			SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);
            return sdf.format(value);
		}
		return value == null ? "" : value.toString();
	}
}

2.在转化的时候给JSONObject设定jsonConfig

public static String peToJson(Pe pe){
        JsonConfig jsonConfig = new JsonConfig();   //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法
        jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());
        JSONObject obj = JSONObject.fromObject(pe,jsonConfig);
        return obj.toString();
}

通过设定jsonConfig,在json转化的时候,即可正确转换Date格式

扫描二维码关注公众号,回复: 2382195 查看本文章

猜你喜欢

转载自www.cnblogs.com/zhangyongJava/p/9369898.html
今日推荐