我正在使用 spring-boot 1.2.1.RELEASE 和 jackson 2.6.2,包括 jsr310 数据类型。我正在使用注释 @SpringBootApplication 来启动我的 Spring 应用程序。我有
spring.jackson.serialization.write_dates_as_timestamps = false
在我的application.properties中设置(我知道它正在被读取,因为我用banner = false进行了测试)。
然而 java.time.LocalDate 仍然被序列化为整数数组。我没有使用@EnableWebMvc。
看起来如果我添加标签
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
到我的 LocalDate 变量然后它就可以工作了。但我认为上面的属性设置是自动的。另外,如果我没记错的话(我从那时起就决定使用整数数组),那只适用于序列化而不是反序列化(但老实说我不太记得最后一部分是否正确)。
最佳答案
这是know issue在 Spring Boot 中。您需要手动完成。
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
或更新至1.2.2。
更新:
还有一个way to configure ObjectMapper
由 spring 从容器中使用。
关于jackson - 无法使用 Jackson 将 java.time.LocalDate 序列化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952269/