@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)管理台打印的日志