桔子214032
桔子214032

Reputation: 143

serializerByType and deserializerByType is not work

enter image description here


/**
 * @author Juzi
 * @date 2020/7/15 09:55
 */
@Configuration
public class JacksonConfiguration {

    /**
     * LocalDateTime 序列化器
     */
    @Autowired
    private JacksonLocalDateTimeSerializer jacksonLocalDateTimeSerializer;

    /**
     * LocalDateTime 反序列化器
     */
    @Autowired
    private JacksonLocalDateTimeDeserializer jacksonLocalDateTimeDeserializer;

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> builder
                .serializerByType(LocalDateTime.class, jacksonLocalDateTimeSerializer)
                .deserializerByType(LocalDateTime.class, jacksonLocalDateTimeDeserializer);
    }
}

I specified Serializer and Deserializer, but they didn't work! So, What should I do to make it work?

Upvotes: 1

Views: 639

Answers (1)

Eklavya
Eklavya

Reputation: 18480

You can add Serializer/Deserializer in JavaTimeModule and register it in ObjectMapper.

Example:

@Configuration
public class JacksonConfiguration {

  @Bean
  @Primary
  public ObjectMapper configureObjectMapper() {
    JavaTimeModule javaTimeModule = new JavaTimeModule();
    javaTimeModule.addSerializer(LocalDateTime.class, new JacksonLocalDateTimeSerializer());
    javaTimeModule.addDeserializer(LocalDateTime.class, new JacksonLocalDateTimeDeserializer());
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.registerModule(javaTimeModule);
    return objectMapper;
  }
}

Upvotes: 1

Related Questions