Spring Boot&杰克逊没有正确地序列化时间戳

时间:2015-05-20 16:03:15

标签: spring spring-mvc jackson spring-boot

我有一个Spring Boot应用程序,它使用默认的Spring Boot Jackson配置从@RestController返回一个映射。一切都很好,除了地图包含一个java.sql.Timestamp,它被序列化为毫秒:

{"timestamp":1428401341884}

我希望将其序列化为文本表示,因此我使用

配置了该选项
spring.jackson.serialization.write_dates_as_timestamps=false

在我的application.properties

现在,如果我有一个单元测试只是从我的Spring配置中自动装配ObjectMapper,那么它可以工作,配置标志可以工作,我可以在时间戳的文本和数字表示之间切换。

@RunWith(SpringJUnit4ClassRunner)
@SpringApplicationConfiguration(classes = [Application])
@WebAppConfiguration
class JacksonJsonSerialisationTest {

    @Autowired ObjectMapper objectMapper

    @Test public void serialiseTimestamp() throws Exception {
        Map test = [ timestamp: new java.sql.Timestamp( new Date().getTime() ) ]
        println objectMapper.writeValueAsString( test )
    }
}

但是,当我检查我的控制器时,这个标志被忽略,时间戳总是被序列化为数字格式。

任何人遇到这个或知道我错过了什么?

0 个答案:

没有答案