使用環境: springboot jackson mysqljava
若是數據庫中配置的是datetime類型,使用@JsonFormat( pattern = "yyyy-MM-dd") 是沒有問題的,可是有些時間不須要帶時分秒,因此數據庫中弄成了date,就由於這個jsonFormat就不起做用了,返回的前臺的仍是一大串,通過一翻搜索,最終找到一篇這樣的文章:mysql
https://github.com/spring-projects/spring-boot/issues/4065git
跟這哥們遇到的問題同樣,受這裏面一段示例啓發github
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; /** * @author HS * @date 2016年6月12日 下午3:59:24 * @Description: TODO * */ public class TestSvn { /** * @author HS * @date 2016年6月12日 下午3:59:24 * @Description: TODO * * @param args * @throws JsonProcessingException */ public static void main(String[] args) throws JsonProcessingException { // TODO Auto-generated method stub ObjectMapper objectMapper = new ObjectMapper(); System.out.println(objectMapper.writeValueAsString(new Foo(new java.util.Date()))); System.out.println(objectMapper.writeValueAsString(new Foo(new java.sql.Date(System.currentTimeMillis())))); } }
public class Foo implements java.io.Serializable { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") private Date testDate; public Date getTestDate() { return testDate; } public void setTestDate(Date testDate) { this.testDate = testDate; } public Foo(Date testDate) { super(); this.testDate = testDate; } }
本身也敲了這段示例,最開始沒加shape = JsonFormat.Shape.STRING,發現跟他輸出的結果不一致,第二個輸出變成了毫秒數,加上以後就行了,因而才聯想到我這的問題spring
必需要使用以下形式:sql
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
完美解決數據庫中是date類型 json轉換的問題數據庫