java json序列化日期型別
阿新 • • 發佈:2018-12-26
做介面開發時經常需要給前端返回日期資料,比如生日、建立時間、更新時間等。我們一般是建一個bean,將定義所需要的欄位,並和資料庫的欄位相對應。雖然資料庫的欄位是日期型別的,但bean的欄位定義在String就行了,看下面的測試程式碼:
package com.bs.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class DateTest {
public static void main(String[] args) {
UserBean user = new UserBean();
user.setName("張三");
user.setBirth(new Date());
String jsonString = JSON.toJSONString(user, SerializerFeature.WriteMapNullValue);
System.out.println(jsonString);
//輸出:{"birth":"2017-09-08 11:09:23","name":"張三"}
}
}
class UserBean{
private String name;
private String birth;//這裡不是Date型別
public String getName() {
return name;
}
public String getBirth() {
return birth;
}
public void setName(String name) {
this.name = name;
}
public void setBirth (Date birth) {//注意這裡的入參是Date型別
if(birth == null){
this.birth = "";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.birth = sdf.format(birth);
}
}
關鍵部分在setBirth()方法的入參是Date型別,在這裡將date轉成指定格式的日期字串。這個方法是我們自己的實現方式,當然可以使用某些框架帶的註解方式。