欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

SpringBoot 序列化与反序列化日期类型参数

发布时间:2025/3/19 javascript 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SpringBoot 序列化与反序列化日期类型参数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

简介

当使用 RequestBody 接收Json类型参数时,LocalDateTime序列化需要单独在字段配置。另外,接口返回的对象包含Date、LocalDateTime,也需要在字段配置@JsonFormat。

因此,最好的方式是全局配置,让开发人员无感地像普通参数那样使用,这是最方便的。

实现

下面这个方法可以直接用,处理了Date、LocalDate、LocalDateTime三大类型

@Configuration public class JasonConf {@Bean@ConditionalOnMissingBean(ObjectMapper.class)public ObjectMapper getObjectMapper() {ObjectMapper objectMapper = new ObjectMapper();//Date类型序列化TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);simpleDateFormat.setTimeZone(timeZone);objectMapper.setDateFormat(simpleDateFormat);//LocalDate、LocalDateTime序列化JavaTimeModule javaTimeModule = new JavaTimeModule();DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter));javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter));objectMapper.registerModule(javaTimeModule);return objectMapper;} }

测试

定义个User实体类:

@Data public class User {private String name;private Date createdOn;private LocalDate birth;private LocalDateTime modifiedOn; }

写个接口测试:

@RequestMapping("/add.json")@ResponseBodypublic User add(@RequestBody User user){user.setCreatedOn(new Date());return user;}

使用Postman进行测试,结果符合要求

总结

以上是生活随笔为你收集整理的SpringBoot 序列化与反序列化日期类型参数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。