在運用Spring MVC框架開發時,能夠直接在方法上添加註解 @ResponseBody 返回JSON數據,若是javabean的屬性中包含Date日期類型的數據,默認的轉換格式並非咱們想要的 yyyy-MM-dd 這樣的格式,那又如何實現這樣的格式轉化呢?java
其實SpringMVC的JSON轉換方法是利用了 Jackson 這個開源的第三方類庫,它提供了一些自定義格式的方法。只要咱們繼承它的抽象類:public abstract class JsonSerializer<T>,並在相應的屬性方法上添加指定註解:@JsonSerialize 便可實現。spring
一、自定義一個格式化的類,實現如何對感興趣的字段進行格式化json
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; /** * 日期類型格式化,格式化爲:yyyy-MM-dd 格式 */ public class DateJsonSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = formatter.format(value); jgen.writeString(formattedDate); } }
二、在要進行格式化的字段上標註 @JsonSerialize,並指定要使用的格式化類對象
mvc
@JsonSerialize(using=DateJsonSerializer.class) @Column(name="BIRTHDAY") public Date getBirthday() { return birthday; }
三、ok搞定框架
參考博客:SpringMVC返回JSON數據時日期格式化問題 ide