Joda DateTime的Jackson MismatchedInputException

时间:2019-08-02 14:49:09

标签: java jackson deserialization jodatime

我正在尝试反序列化其中具有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);
    }

请问如何解决此错误?

非常感谢。

0 个答案:

没有答案