Fastjson序列化和反序列化的時候日期處理
阿新 • • 發佈:2019-01-06
序列化
1.序列化日期為ISO-8601日期格式
2.序列化日期為指定格式
3.用預設的全域性日期格式
序列化物件
public class Ao { private int id; private Date date; public int getId() { return id; } public void setId(int id) { this.id = id; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String toString() { return "Ao{" + "id=" + id + ", date=" + date + '}'; } }
序列化方法
Ao ao = new Ao(); ao.setId(1); ao.setDate(new Date()); // 日期不做處理 Log.e(TAG,JSON.toJSONString(ao) ); // 序列化日期為ISO-8601日期格式 Log.e(TAG,JSON.toJSONString(ao,SerializerFeature.UseISO8601DateFormat) ); // 序列化日期為指定格式 Log.e(TAG,JSON.toJSONStringWithDateFormat(ao, "yyyy-MM-dd HH:mm:ss.SSS") ); // 修改全域性的全域性日期格式 JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd"; // 使用預設的全域性日期格式 Log.e(TAG,JSON.toJSONString(ao,SerializerFeature.WriteDateUseDateFormat)); Ao ao1 = new Ao(); ao1.setId(2); ao1.setDate(new Date()); Log.e(TAG,JSON.toJSONString(ao1,SerializerFeature.WriteDateUseDateFormat) );
log
{"date":1507606490007,"id":1}
{"date":"2017-10-10T11:34:50.007+08:00","id":1}
{"date":"2017-10-10 11:34:50.007","id":1}
{"date":"2017-10-10","id":1}
{"date":"2017-10-10","id":2}
反序列化
反序列化能夠自動識別如下日期格式:
- ISO-8601日期格式
- yyyy-MM-dd
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd HH:mm:ss.SSS
- 毫秒數字
- 毫秒數字字串
- .NET JSON日期格式
- new Date(1982932381111)
反序列化方法
Ao ao = new Ao(); ao.setId(1); ao.setDate(new Date()); Ao aos1=JSON.parseObject(JSON.toJSONString(ao, SerializerFeature.UseISO8601DateFormat),Ao.class); Log.e(TAG, aos1.toString());
log
Ao{id=1, date=Tue Oct 10 12:56:15 GMT+08:00 2017}