java - Apache Camel 和 jackson

标签 java json jackson apache-camel

我正在试用 apache-camel,我已经设置了一个基本路由,通过 http4 组件调用 http 服务,通过 unmarshal().json(JsonLibrary.Jackson) 转换结果,然后打印出部分bean 组件中的响应。

我遇到的问题是,当它到达 json unmarhsaller 时,它会在运行时爆炸:

No type converter available to convert from type: java.util.HashMap to the required type: com.xxx.MyType

响应格式如下:

{"data":[{"x":"y"},{"x":"z"}]}

我的对象模型是这样的:

@lombok.Data
class Response {
    private List<Elem> data;
}

@lombok.Data 
class Elem {
    private String x;
}

所以看起来解码器认为响应是一个散列映射,而我希望它解码为一个对象结构。有没有办法让它做我想做的事?

最佳答案

找到答案,发帖以防其他人遇到这个问题。路由生成器应该设置如下:

from("direct:start").to("http4://...").unmarshal().json(JsonLibrary.Jackson,com.xxx.Response)
.to("bean:com.xxx.MyResponseEchoer")

即将类类型传递给 json 方法。

关于java - Apache Camel 和 jackson ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509859/

相关文章:

java - 已读和未读图书申请

java - 从 Java 程序错误执行 Unix Diff

java - 如何用java更新多个文档? MongoDB 3.5 驱动程序

ajax - 如何使用CakePHP处理json api调用的应用程序错误?

android - 如何更改 Robospice/Jackson 中的根 JSON 数组元素名称?

java - 尝试资源的 8 个分支 - 可以进行 jacoco 覆盖吗?

java - ActionBar按钮不显示

python - 类型错误:字符串索引必须是整数(使用 pandas Dataframe)

java - Jackson ObjectMapper 仅已知接口(interface)

java - 将 HashMap 解析为 Json