序列化
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}