springboot LocalDateTime 序列化、反序列化全局配置
springboot LocalDateTime 序列化、反序列化全局配置
LocalDateTime按照自定义的格式进行序列化、反序列化
#
***********************
示例
**************
pojo 层
Order
@Data
public class Order {
private String orderId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime orderTime;
private Double price;
private Integer amount;
}
**************
config 层
WebConfig
@Configuration
public class WebConfig {
@Bean
public ObjectMapper initObjectMapper(){
ObjectMapper objectMapper=new ObjectMapper();
JavaTimeModule javaTimeModule=new JavaTimeModule();
javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
//localDateTime按照 "yyyy-MM-dd HH:mm:ss"的格式进行序列化、反序列化
objectMapper.registerModule(javaTimeModule);
return objectMapper;
}
}
**************
controller 层
HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public LocalDateTime hello(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime localDateTime){
System.out.println("hello ==> "+localDateTime);
return localDateTime;
}
@RequestMapping("/hello2")
public Order hello2(Order order){
System.out.println("hello2 ==> "+order);
return order;
}
@RequestMapping("/hello3")
public Order hello3(@RequestBody Order order){
System.out.println("hello3 ==> "+order);
return order;
}
}
***********************
使用测试
*****************
/hello
localhost:8080/hello?localDateTime=2020-08-06 09:08:06
设置全局配置输出:2020-08-09 08:06:09
#控制台输出
hello ==> 2020-08-09T08:06:09
不设置全局配置输出:2020-08-09T08:06:09
*****************
/hello2
localhost:8080/hello2?orderId=1&orderTime=2020-08-06 08:06:09&price=2&amount=8
设置全局配置输出
![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70][]
#控制台输出
hello2 ==> Order(orderId=1, orderTime=2020-08-06T08:06:09, price=2.0, amount=8)
不设置全局配置输出
![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70 1][]
*****************
/hello3
localhost:8080/hello3,
header:Content-Type application/json
body:
{
"orderId": "2",
"orderTime": "2020-08-09 08:06:09",
"price": "2",
"amount": "8"
}
设置全局配置输出
![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70 2][]
#控制台输出
hello3 ==> Order(orderId=1, orderTime=2020-08-09T08:06:09, price=2.0, amount=8)
不设置全局配置,无法反序列化,可在LocalDateTime加注解@JsonFormat(pattern = “yyyy-MM-dd HHss”)
![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70 3][]
还没有评论,来说两句吧...