我使用Spring Integration ObjectToMapTransformer
的transformPayload()
將我的Java對象轉換爲Map
。如何在Spring集成中設置JsonObjectMapper的日期格式
一切正常,除了我的對象中的Instant
字段被分解爲epochSecond
和nano
,這反過來在持久化數據存儲(MongoDB)時拋出異常。
這是Spring集成JsonObjectMapper
被用來轉換Object
到Map
: private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
我的問題是我怎麼可以配置上述映射日期格式。就像Jackson
的ObjectMapper::configure()
,我們有沒有類似的選擇? 我無法在源代碼和互聯網上找到任何東西!
我也嘗試啓用/禁用spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS
在我的application.properties
,但沒有喜悅!
我在jackson-datatype-jsr310
依賴我pom.xml
如何得到正確格式Instant
?
你有沒有意思是:'.transform(Transformers.toJson(jsonObjectMapper(),ObjectToJsonTransformer.ResultType.NODE).transform(message))'而不是? –
基於你的回答,我可以通過定義我自己定製的傑克遜映射器來防止我的'Instant'字段被分解爲'epochSecond'和'nano':ObjectMapper mapper = new ObjectMapper()。findAndRegisterModules();'和然後在你提出的解決方法中使用相同的方法:MapMap對象映射Transformer.transform(Transformer.toJson(new Jackson2JsonObjectMapper(mapper),ObjectToJsonTransformer.ResultType.NODE).transform(message))。getPayload ();' 將爲自定義映射器支持提出JIRA票證。期待貢獻。 –
嗯,我甚至認爲可以包含'findAndRegisterModules()'作爲默認的我們的盒子選項 –