1

我正在将我的 Java 对象转换为Map使用 Spring IntegrationObjectToMapTransformertransformPayload().

一切正常,除了Instant我的对象中的字段被分解为epochSecondand nano,这反过来又在数据存储(MongoDB)中持久化时引发异常。

JsonObjectMapper这是用于将其转换Object为的 Spring Integration Mapprivate final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();

我的问题是如何为上述映射器配置日期格式。就像Jackson's一样ObjectMapper::configure(),我们这里有没有类似的选择?我在源代码和互联网上都找不到任何东西!

我也尝试spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS在我的 中启用/禁用application.properties,但不高兴!

我有jackson-datatype-jsr310依赖pom.xml

如何获得Instant正确的格式?

4

1 回答 1

1

我认为我们应该添加对自定义JsonObjectMapper注入的支持。这样您就可以Jackson2JsonObjectMapper根据需要进行构建ObjectMapper

请就此事提出 JIRA 票,不要犹豫做出贡献:https ://github.com/spring-projects/spring-integration/blob/master/CONTRIBUTING.adoc

同时,作为一种解决方法,我建议使用一对ObjectToJsonTransformer/ JsonToObjectTransformer

.transform(Transformers.toJson(jsonObjectMapper(), ObjectToJsonTransformer.ResultType.NODE))
.transform(Transformers.fromJson(Map.class, jsonObjectMapper()))
于 2017-07-10T14:03:29.680 回答