如何修复'com.fasterxml.jackson.databind.JsonMappingException:问题反序列化属性'错误

问题描述 投票:0回答:1

我正在使用对象映射器将格式为yyyy-MM-dd的日期字符串转换为com.datastax.driver.core.LocalDate,并将该数据保存到我的java spring启动项目中的Cassandra中。我在Cassandra中的列的类型是日期,我在我的java类中使用com.datastax.driver.core.LocalDate。但是在将map转换为我的java类时,它会抛出错误“com.fasterxml.jackson.databind.JsonMappingException:问题反序列化属性'employeedateofbirth'(预期类型:[simple type,class com.datastax.driver.core.LocalDate];实际类型:java.time.LocalDate),问题:参数类型不匹配“。我没有使用java.time.LocalDate它仍然给我参数不匹配错误。

我甚至尝试使用以下代码注册模块

ObjectMapper oMapper = new ObjectMapper().registerModule(new ParameterNamesModule()).registerModule(new Jdk8Module()).registerModule(new JavaTimeModule());
oMapper.findAndRegisterModules();

我也试过像对象映射器一样的配置

oMapper.configure(MapperFeature.USE_GETTERS_AS_SETTERS, false) ;

甚至在我的属性上使用了注释:

@JsonDeserialize(using = LocalDateDeserializer.class)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate employeedateofbirth;

但似乎没有什么对我有用。任何帮助,将不胜感激。提前致谢。

java spring spring-boot mapping spring-data-cassandra
1个回答
1
投票

如错误消息所示,存在类型不匹配。在目标类中更改此内容:

import com.datastax.driver.core.LocalDate;

成:

import java.time.LocalDate;
© www.soinside.com 2019 - 2024. All rights reserved.