010-日期格式化注解

发布于:2024-10-17 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、@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.