我最近尝试使用spring-boot 2实现微服务。
现在,每当我尝试java.time.LocalDateTime从REST服务返回包含的对象时,LocalDateTime都会序列化为整数数组。像这样:
java.time.LocalDateTime
{ "id": "5bf1425f9f8de267f04b22ad", "description": "aaaaaarrrgggghhhhh", "timestamp": [ 2018, 11, 18, 11, 43, 43, 889000000 ], "time": 2.25, ... }
我尝试在中配置ObjectMapper通过设置application.yml
ObjectMapper
application.yml
spring: jackson: serialization: write-dates-as-timestamps: false
但不起作用。我还尝试通过Spring Configuration类配置新的ObjectMapper,如下所示:
@Configuration public class JacksonConfig { @Bean @Primary public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { final ObjectMapper objectMapper = builder.build(); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); return objectMapper; } }
我的配置被加载(调试器在断点处停止)-只是它什么都不做。
我尝试将jackson依赖项手动添加(也用于jsr310模块)到pom.xml-也没有任何运气。
jackson
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency>
由于某种原因,Spring Boot似乎忽略了我使用ObjectMapper进行任何尝试的尝试,并且一直返回相同的结果。
com.fasterxml在中将日志级别设置为DEBUG application.yml也不会产生任何输出:
com.fasterxml
logging: level: com.fasterxml: DEBUG
我在Jackson 2.9.7中使用Spring Boot 2.1.0-RELEASE。
基本pom文件是从https://start.spring.io生成的。我的项目针对Java 8 JVM进行编译并在其上运行。
该答案基于teppic对原始帖子的评论。
该问题是由我的@Configuration类之一上的@EnableWebMVC引起的。删除@EnableWebMVC即可立即解决问题。