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

Posted on 2018-07-26 09:46  我编程我快乐  阅读(824)  评论(0编辑  收藏  举报

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格式

Copyright © 2024 我编程我快乐
Powered by .NET 9.0 on Kubernetes