@JsonFormat、@DateTimeFormat、@JSONField注解的使用

1.注解@JsonFormat
1)使用maven引入@JsonFormat所需要的jar包

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.8.8</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.8.8</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-asl</artifactId>
	<version>1.9.13</version>
</dependency>

2)在实体类的属性上添加@JsonFormat

@Data
public class DateTest1 {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date date;
    @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    private Date date1;
    @JsonFormat(locale = "zh_CN")
    private Date date2;

    public DateTest1(){};

    public DateTest1(Date date, Date date1, Date date2) {
        this.date=date;
        this.date1=date1;
        this.date2=date2;
    }
}

3)对应的controller

 @RequestMapping("/testDate1")
    public DateTest1 testDate1(@RequestBody DateTest1 dateTest1) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        System.out.println("dateTest1: date="+dateTest1.getDate()+"&date1="+dateTest1.getDate1()+"&date2="+dateTest1.getDate2());
        System.out.println(objectMapper.writeValueAsString(dateTest1));
        return dateTest1;
    }

4)前端请求
在这里插入图片描述
5)管理台打印的日志
在这里插入图片描述

2.注解@DateTimeFormat
1)引入相关依赖

<dependency>
	<groupId>joda-time</groupId>
	<artifactId>joda-time</artifactId>
	<version>2.3</version>
</dependency>

2)在实体类的属性上添加@DateTimeFormat

@Data
public class DateTest2{
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date5;
    public DateTest2(){};
}

3)对应的controller

@RequestMapping("/testDate2")
    public DateTest2 testDate2(@RequestBody DateTest2 dateTest2){
        System.out.println("dateTest2: date="+dateTest2.getDate() );
        return dateTest2;
    }

4)前端请求
在这里插入图片描述
5)管理台打印的日志
在这里插入图片描述
3注解@JSONField
1)引入相关依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.39</version>
</dependency>

2)在实体类的属性上添加@JSONField

@Data
public class DateTest3 {
    @JSONField(name="aaa")
    private String name;
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date date1;
    
    public DateTest3() {}
    
    public DateTest3(Date date1) {
        this.date1=date1;
    }
    
    public DateTest3(String name, Date date1) {
        this.name=name;
        this.date1=date1;
    }
}

3)对应的controller

@RequestMapping("/testDate3")
    public DateTest3 testDate3(@RequestBody DateTest3 dateTest3){
        System.out.println("dateTest3: name="+dateTest3.getName()+"&date1="+dateTest3.getDate1());
        System.out.println(JSONObject.toJSONString(dateTest3));
        return dateTest3;
    }

4)前端请求
在这里插入图片描述
5)管理台打印的日志
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/musi_m/article/details/88607294