记录一次完整的解决问题的过程。
问题:实体中需要一个 LocalDate 对象,实体类中创建相关字段后,swagger 调试 该接口 总是 报400 错误,参数格式不正确。
解决:
- 400 错误 根本就没有进去方法内,
查看 LocalDate 构造方法
捕获.PNGswagger 显示
按照该格式去 传递 LocalDate 参数,还是 400 错误,参数传递有问题。
- 上面没有找到结果之后,想到了 注解 @DateTimeFormat
看到 as of Spring 4 and JDK8, to JSR-310 java
猜测 @DateTimeFormat 肯定支持 java8 中的LocalDate, 只是自己不知道怎么用罢了
-
最后找到 Jsr310DateTimeFormatAnnotationFormatterFactory
捕获.PNG
确定 存在相关 注解
- 在bing 搜索中搜索 Jsr310DateTimeFormatAnnotationFormatterFactory
最终找到解决方法
原文地址:https://stackoverflow.com/questions/30871255/spring-boot-localdate-field-serialization-and-deserialization
pom 文件中需要添加:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.4</version>
</dependency>
@DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE)
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate birthday;
网友评论