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;
}
}
使用测试
localhost:8080/hello?localDateTime=2020-08-06 09:08:06
设置全局配置输出:2020-08-09 08:06:09
不设置全局配置输出:2020-08-09T08:06:09
localhost:8080/hello2?orderId=1&orderTime=2020-08-06 08:06:09&price=2&amount=8
设置全局配置输出
不设置全局配置输出
localhost:8080/hello3,
header:Content-Type application/json
body:
{
"orderId": "2",
"orderTime": "2020-08-09 08:06:09",
"price": "2",
"amount": "8"
}
设置全局配置输出
不设置全局配置,无法反序列化,可在LocalDateTime加注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
本文地址:https://blog.csdn.net/weixin_43931625/article/details/107395262
如对本文有疑问, 点击进行留言回复!!
springboot利用profile配置文件进行多环境切换
如何使用MyBatis-Plus代码生成器(逆向工程)一键生成代码
网友评论