当前位置: 移动技术网 > IT编程>开发语言>Java > springboot LocalDateTime 序列化、反序列化全局配置

springboot LocalDateTime 序列化、反序列化全局配置

2020年07月17日  | 移动技术网IT编程  | 我要评论

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;
    }
}

 

 

***********************

使用测试

 

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网