我正在尝试反序列化其中具有Joda dateTime格式的JSON对象。
反序列化错误如下:
com.fasterxml.jackson.databind.exc.MismatchedInputException:无法 构造
org.joda.time.DateTime
的实例(尽管至少有一个 创建者存在):没有字符串参数构造函数/工厂方法 从[]处的字符串值('2019-08-02T17:33:24.000Z')反序列化 (StringReader);行:1,列:34](通过参考链: Event $ Builder [“ time”])
我正在使用的对象映射器是:
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
public class Mapper {
private ObjectMapper objectMapper;
public Mapper() {
this.objectMapper = new ObjectMapper()
.registerModule(new GuavaModule())
.registerModule(new JodaModule())
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public ObjectMapper getObjectMapper() {
return objectMapper;
}
}
具有以下依赖关系:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.8</version>
</dependency>
以及尝试反序列化JSON的方法:
try {
Event = new Mapper()
.getObjectMapper()
.readValue(response, Event.class);
} catch (IOException e) {
fail(e);
}
请问如何解决此错误?
非常感谢。