jackson - Joda Time/Jackson 2/Spring 的反序列化问题 - 无法实例化类型的值 [简单类型,类 org.joda.time.DateTime]

标签 jackson jodatime spring-android

尝试使用 Joda 将包含日期字符串的 JSON 字符串反序列化为 POJO 时遇到异常。

我将 Jackson2 与 Spring 和 Robospice 一起使用。

我遇到以下异常:

Could not read JSON: Can not instantiate value of type [simple type, class org.joda.time.DateTime] from String value ('2014-07-25T00:00:00'); no single-String constructor/factory method

这是我目前拥有的代码:

MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter 
                            = new MappingJackson2HttpMessageConverter();

mappingJackson2HttpMessageConverter.getObjectMapper().registerModule(new JodaModule());
msgConverters.add(mappingJackson2HttpMessageConverter);

restTemplate.setMessageConverters(msgConverters);
HttpEntity<?> httpEntity = new HttpEntity<Object>(headers);

final ResponseEntity<HolidayList> responseEntity 
            = restTemplate.exchange(url, HttpMethod.GET, httpEntity,HolidayList.class);

POJO 字段的定义如下:

private DateTime departureDate;

我在 Jackson1 中可以使用它...但似乎无法在 Jackson2 中使用它。

最佳答案

对于 Maven 用户:当您使用 jackson 和 joda 但忘记包含 jackson-datatype-joda 时,就会出现此问题。对于截至此答案 (2.6.3) 的最新 jackson 版本,以下是您必须包含在 pom 文件中的依赖项。

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.6.3</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.3</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-joda</artifactId>
        <version>2.6.3</version>
    </dependency>

关于jackson - Joda Time/Jackson 2/Spring 的反序列化问题 - 无法实例化类型的值 [简单类型,类 org.joda.time.DateTime],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232393/

相关文章:

java - Joda MutableDateTime 的 setDate(DateTime) 方法如何工作?

android - Android 的 Spring : add get parameter to every request

java - jackson : Pojo property multitype

java - 如何使用 Jackson ObjectMapper 解析 java 对象的 json 响应

java - 为什么 JacksonJsonProvider 会忽略 MediaType 的参数?

java - 如何表示特定的日历周期(月、周等)

java - Date - Java 到 Sql 表以及 sql 表通过 Joda Time 到 Java

java - 如何在 jackson 中指定反序列化顺序?

java - ReSTLet 表示错误 422