自定义反序列化器
在写黑马点评的时候,涉及一个类中的LocalDateTime类型无法直接从JSON中的长整型数据直接反序列化,所以我需要一个自定义反序列化器来进行LocalDateTime的反序列化,接下来是实现步骤:
1.自定义反序列化器
@Slf4j
public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
long timestamp = jsonParser.getLongValue();
log.info("反序列化器运行");
return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
}
}
2.注册反序列化器到ObjectMapper中
@Configuration
public class ObjectMapperConfig {
@Bean
public ObjectMapper objectMapper () {
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
objectMapper.registerModule(module);
return objectMapper;
}
}