SpringMVC 中JACKSON序列化日期格式

1、在java.util.Date类型的属性的getter方法上加上
@JsonSerialize(using=JsonDateSerializer.class)

代码如下:
package com.demo.bean;

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

import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.demo.common.JsonDateSerializer;

/**
 * 活动参与者
 */
public class Customer implements Serializable {
	
	private static final long serialVersionUID = -4607553711147242790L;
	
	private Date time;
	
	public Customer() {
		super();
	}
	
	
        @JsonSerialize(using=JsonDateSerializer.class)
        public Date getTime() {
		return time;
	}
	public void setTime(Date time) {
		this.time = time;
	}
	
}


2、定义一个JACKSON序列化日期格式的类,需要继承JsonSerializer,覆盖里面的serialize方法,代码如下:
package com.demo.common;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;


public class JsonDateSerializer extends JsonSerializer<Date> {

	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	@Override
	public void serialize(Date date, JsonGenerator gen,
			SerializerProvider provider) throws IOException,
			JsonProcessingException {

		String formattedDate = dateFormat.format(date);

		gen.writeString(formattedDate);
	}

}


3、结果:
序列化前:
"time":1348467243000
序列化后:
"time":"2012-09-24 14:14:03"

猜你喜欢

转载自yzhw.iteye.com/blog/1685530