@DateTimeFormat @JsonFormat @JsonField的使用

大老板 1年前 ⋅ 1323 阅读

@DateTimeFormat @JsonFormat @JsonField的使用

@DateTimeFormat用于前端向后端传String时间字段转换成Date、LocalDateTime等时间类型接收

具体使用方法:

a. 参数不在实体类中

public void test(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime)
...

b.参数在实体类中(不能是加了@RequestBody 的实体类)

@Data
public class Query {
    
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
}

@JsonFormat即可用于接收前端向后端传String时间的时候转换成Date、LocalDateTime等时间类型,也可以用于后端转换Date、LocalDateTime等时间类型为String给前端

具体使用方法:

a. 前端->后端

public void test(@RequestBody Query query)
...

@Data
public class Query {
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
}

b.后端->前端

@Data
public class Query {
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
}

@JsonField 最常用的属性是@JSONField(name=”xxxx”)和 @JSONField(format=”yyyy-MM-dd HH:mm:ss”)[fastjson专用]

具体使用方法:

a. name:@JSONField(name=”resType”)主要用于指定前端传到后台时对应的key值,如果bean中没有这个注解,则默认前端传过来的key是field本身,即如果是private String name,name前端对应的key就是name才能对应上;也可用于指定后台返回给前端时对应的key值。

b. format @JSONField(format=”yyyy-MM-dd HH:mm:ss”)主要用于格式化日期,比如前台传过来的时间是2018-07-12 17:44:08,但是通过这个注解,你存到数据库的时间就是2018-07-12 17:44:08.


全部评论: 0

    我有话说: