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

我在Spring和Robospice中使用Jackson2。

我收到以下异常:



这是我目前拥有的代码:

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 和乔达,但忘记包括 jackson 数据类型-乔达时,会发生此问题。对于截至该答案(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/

10-12 18:44