问题描述
我的String如下,
value = {"name":"John","timeStamp":"2020-08-11T13:31:31"}
我的Pojo课堂是
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
class Person{
private String name;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm",shape = JsonFormat.Shape.STRING)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime timeStamp;
}
我根据https://github.com/FasterXML/jackson-modules-java8
使用以下工件 <dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.11.1</version>
</dependency>
我使用以下配置,
final ObjectMapper objectMapper = JsonMapper.builder()
.addModule(new ParameterNamesModule())
.addModule(new Jdk8Module())
.addModule(new JavaTimeModule())
.build();
objectMapper.readValue(value,Person.class)
我收到以下异常,
Caused by: java.io.NotSerializableException: java.time.format.DateTimeFormatter
我也在timeStamp中尝试了以下内容,但没有运气
@JsonFormat(pattern = "yyy-MM-ddThh:mm:ss")
解决方法
您显示的ISO格式是默认格式,因此无需复杂,它应该可以工作!
class Person {
private String name;
private LocalDateTime timeStamp;
}
PS。建议您使用jackson-bom托管依赖项,以避免2.11.1出现在各处。有关BOM表示例,请参见How to use BOM file with Maven?。