如何在 Spring 集成中为 JsonObjectMapper 设置日期格式
How to set date format for JsonObjectMapper in Spring Integration
我正在使用 Spring 集成 ObjectToMapTransformer
的 transformPayload()
.
将我的 Java 对象转换为 Map
一切正常,除了我对象中的 Instant
字段被分解为 epochSecond
和 nano
,这反过来在数据存储中持久化时抛出异常(MongoDB).
这是用于将 Object
转换为 Map
的 Spring 集成 JsonObjectMapper
:
private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
我的问题是如何为上述映射器配置日期格式。就像Jackson
的ObjectMapper::configure()
一样,我们这里有类似的选择吗?
我找不到任何东西,无论是在源代码中还是在互联网上!
我也在我的 application.properties
中尝试了 enabling/disabling spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS
,但不开心!
我的 pom.xml
有 jackson-datatype-jsr310
依赖
如何获得正确格式的 Instant
?
我认为我们应该添加对自定义 JsonObjectMapper
注入的支持。这样您就可以根据所需的 ObjectMapper
.
构建 Jackson2JsonObjectMapper
请就此事提出 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()))
我正在使用 Spring 集成 ObjectToMapTransformer
的 transformPayload()
.
Map
一切正常,除了我对象中的 Instant
字段被分解为 epochSecond
和 nano
,这反过来在数据存储中持久化时抛出异常(MongoDB).
这是用于将 Object
转换为 Map
的 Spring 集成 JsonObjectMapper
:
private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
我的问题是如何为上述映射器配置日期格式。就像Jackson
的ObjectMapper::configure()
一样,我们这里有类似的选择吗?
我找不到任何东西,无论是在源代码中还是在互联网上!
我也在我的 application.properties
中尝试了 enabling/disabling spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS
,但不开心!
我的 pom.xml
jackson-datatype-jsr310
依赖
如何获得正确格式的 Instant
?
我认为我们应该添加对自定义 JsonObjectMapper
注入的支持。这样您就可以根据所需的 ObjectMapper
.
Jackson2JsonObjectMapper
请就此事提出 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()))