@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"