【发布时间】:2015-01-11 15:01:22
【问题描述】:
我正在尝试使用 Spring Boot v1.2.0.BUILD-SNAPSHOT 将 Joda DateTime 属性序列化为 ISO-8601 这是我非常简单的 REST 应用程序。
@RestController
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
class Info{
private DateTime dateTime;
public Info(){
dateTime = new DateTime();
}
public DateTime getDateTime() {
return dateTime;
}
public void setDateTime(DateTime dateTime) {
this.dateTime = dateTime;
}
}
@RequestMapping("/info")
Info info() {
return new Info();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Module getModule(){
return new JodaModule();
}
}
dateTime 被序列化为时间戳,例如{"dateTime":1415954873412}
我试过添加
@Bean
@Primary
public ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
return objectMapper;
}
但这也无济于事。那么如何在 Spring Boot 中配置 Jackson 以使用 ISO-8601 格式进行序列化呢? 顺便说一句:我只在我的 Gradle 构建中添加了以下依赖项
compile("joda-time:joda-time:2.4")
compile("org.jadira.usertype:usertype.jodatime:2.0.1")
compile("com.fasterxml.jackson.datatype:jackson-datatype-joda:2.4.2");
【问题讨论】:
标签: datetime jackson jodatime spring-boot iso8601