日期格式化注解
一、@JSONField
1.介绍
在开发的过程中使用json格式的地方非常多,前后端数据交换的格式一般为json。把java中的实体类序列化为json的方式也有很多方式,今天来看看常用到的fastjson。
都知道fastjson是阿里开源的一个序列化/反序列化的jar包,在日常的开发过程中经常会碰到,也是使用频率较高的一款工具。
- 引入依赖
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.51</version>
</dependency>
注意:JSONField 的属性只针对序列化为json字符串有效,不作用于对象本身。
2.serialize 属性用法
现在有这样的一个需求,要返回给前端 TestJsonFiled 的json字符串,但不想给前端 address 字段,你要怎么做那?
一个比较容易想到的方式是从字符串中把这个属性去掉,或者重新生成一个不包含 birthday 的实体对象。那有没有更好的方式呢?
@Data
public class TestJsonFiled {
private String name;
@JSONField(serialize = false)
private String address;
private String phoneNumber;
private Date birthday;
}
@Test
public void test1(){
TestJsonFiled testJsonFiled = new TestJsonFiled();
testJsonFiled.setName("xiaogang");
testJsonFiled.setPhoneNumber("111111111111");
testJsonFiled.setAddress("beijing");
testJsonFiled.setBirthday(new Date());
log.