我正在使用SI 4.0并尝试使用object-to-map-transformer
,如下所示
<integration:object-to-map-transformer input-channel="inputChannel"
output-channel="outChannel" >
</integration:object-to-map-transformer>
我在inputChannel上发送了一个像Person类这样的对象。但是,当我开始测试时,它失败并出现以下错误
Caused by: java.lang.IllegalStateException: Neither jackson-databind.jar,
nor jackson-mapper-asl.jar aren't presented in the classpath. at
org.springframework.integration.support.json.JacksonJsonUtils.<clinit>(JacksonJsonUtils.java:41)
我不明白为什么需要杰克逊。我查看了SI代码并且可以看到它需要Jackson类,但为什么需要这个 - 当我只需要将一个简单的对象映射到Map时?
由于
答案 0 :(得分:1)
转换object to map
的代码如下:
Map<String,Object> result = this.jsonObjectMapper.fromJson(this.jsonObjectMapper.toJson(payload), Map.class);
由于JsonObjectMapper
的开箱即用实现是杰克逊,因此需要在类路径中显示最后一个。
我们决定对Map
演示文稿使用JSON表示法,因为JSON中的任何对象都有基于地图的结构。
如果您有其他算法可以做同样的事情,欢迎您的贡献!
或者您可以使用该逻辑简单地实现自己的Transformer
,并使用通用<transformer>
。