ObjectToMapTransformer transformer = new ObjectToMapTransformer();
transformer.setShouldFlattenKeys(true);
如何使用此转换器将Joda DateTime保存在其String表示中?
答案 0 :(得分:1)
我的解决方案是复制ObjectToMapTransformer的源代码,并创建自己的ObjectToMapTransformer和Jackson2JsonObjectMapper。
在ObjectToMapTransformer中,添加一个getter函数来检索私有成员jsonObjectMapper。
在Jackson2JsonObjectMapper中,添加一个getter函数来检索私有成员objectMapper。
使用您自己的Jackson2JsonObjectMapper在ObjectToMapTransformer中创建jsonObjectMapper
基本上,替换
private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
使用
private final JsonObjectMapper<?, ?> jsonObjectMapper = new Jackson2JsonObjectMapper();
请记住导入您自己创建的类而不是org.springframework导入
因此,您可以获取ObjectMapper的实例,然后配置ObjectMapper
JsonObjectMapper<?, ?> jsonObjectMapper = transformer.getJsonObjectMapper();
if(jsonObjectMapper instanceof Jackson2JsonObjectMapper){
System.out.println("Configuring ObjectToMapTransformer Jackson2JsonObjectMapper");
Jackson2JsonObjectMapper jackson2JsonObjectMapper = (Jackson2JsonObjectMapper)jsonObjectMapper;
ObjectMapper mapper = jackson2JsonObjectMapper.getObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.registerModule(new JodaModule());
}