springboot mysql jackson date問題

使用環境: 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轉換的問題數據庫

相關文章
相關標籤/搜索