FastJson序列化时间自定义格式示例详解
在使用FastJson进行序列化时,我们有时需要对日期类型进行格式化,以满足项目需求,本文将详细讲解FastJson序列化时间的自定义格式方法。
一、使用JsonField注解自定义时间格式
FastJson提供了@JSONField
注解,通过该注解可以对Java对象进行序列化并指定时间格式。
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
public class User {
private Integer id;
private String name;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 省略 getter 和 setter...
}
在上述代码中,我们通过@JSONField
注解的format
属性来指定日期格式,这里是yyyy-MM-dd HH:mm:ss。
二、使用FastJson全局配置自定义时间格式
除了在Java对象上使用注解外,我们还可以通过FastJson的全局配置来指定时间格式,代码如下:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.Date;
public class Test {
public static void main(String[] args) {
// 自定义时间格式
String dateFormat = "yyyy-MM-dd HH:mm:ss";
// FastJson全局配置
JSON.DEFFAULT_DATE_FORMAT = dateFormat;
// 创建User对象
User user = new User();
user.setId(1);
user.setName("Tom");
user.setCreateTime(new Date());
// 序列化Java对象
String jsonString = JSONObject.toJSONString(user, SerializerFeature.WriteDateUseDateFormat);
System.out.println(jsonString);
}
}
在上述代码中,我们首先定义一个自定义的时间格式,然后通过修改JSON.DEFFAULT_DATE_FORMAT
全局变量来指定该格式。最后,在JSONObject.toJSONString()
方法中启用SerializerFeature.WriteDateUseDateFormat
特性即可序列化Java对象。
三、示例
示例一
下面是一个完整的示例,该示例演示了使用注解自定义时间格式的用法:
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
public class User {
private Integer id;
private String name;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 省略 getter 和 setter...
public static void main(String[] args) {
User user = new User();
user.setId(1);
user.setName("Tom");
user.setCreateTime(new Date());
String jsonString = JSONObject.toJSONString(user);
System.out.println(jsonString);
}
}
输出结果:
{"createTime":"2021-08-17 13:55:23","id":1,"name":"Tom"}
在上述代码中,我们使用了注解@JSONField
指定了时间格式。
示例二
下面是一个完整的示例,该示例演示了使用全局配置自定义时间格式的用法:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.Date;
public class Test {
public static void main(String[] args) {
String dateFormat = "yyyy-MM-dd HH:mm:ss";
JSON.DEFFAULT_DATE_FORMAT = dateFormat;
User user = new User();
user.setId(1);
user.setName("Tom");
user.setCreateTime(new Date());
String jsonString = JSONObject.toJSONString(user, SerializerFeature.WriteDateUseDateFormat);
System.out.println(jsonString);
}
}
输出结果:
{"createTime":"2021-08-17 13:55:23","id":1,"name":"Tom"}
在上述代码中,我们首先定义了一个自定义的时间格式,然后通过修改JSON.DEFFAULT_DATE_FORMAT
全局变量来指定该格式,同时在JSONObject.toJSONString()
方法中启用SerializerFeature.WriteDateUseDateFormat
特性序列化Java对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:fastjson序列化时间自定义格式示例详解 - Python技术站