JavaTimeModule
should be registered explicitly:
@Configuration
public class JacksonConfiguration {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
return mapper;
}
}
UPDATE:
The first solution should be used with jackson-datatype-jsr310
versions 2.x
before 2.9
. Since you added version 2.13.3
, the module should be registered as shown below, according to the answer.
@Configuration
public class JacksonConfiguration {
@Bean
public ObjectMapper objectMapper() {
return JsonMapper.builder()
.addModule(new JavaTimeModule())
.build();
}
}
UPDATE 2:
Starting with Jackson 2.2, Modules can be automatically discovered
using the Service Provider Interface (SPI) feature. You can activate
this by instructing an ObjectMapper to find and register all Modules:
// Jackson 2.10 and later
ObjectMapper mapper = JsonMapper.builder()
.findAndAddModules()
.build();
// or, 2.x before 2.9
ObjectMapper mapper = new ObjectMapper();
mapper.findAndRegisterModules();
For reference: jackson-modules-java8 - Registering modules