我正在使用 Bindy 和 Camel 来处理 CSV 文件。
下面的代码,获取从 csv 解组的 bean 列表运行良好。
from("ftp://blabla.com:21/InPut?password=bla&move=done&sortBy=file:name")
.unmarshal(bindy)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
Message in = exchange.getIn();
Map<String, Object> modelMap = (Map<String, Object>) in.getBody();
System.out.println(modelMap.size());
int i = 0;
}
});
但是当我尝试这个时:
from("ftp://blabla.com/InPut?password=bla&move=done&sortBy=file:name")
.unmarshal(bindy)
.split(body())
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
Message in = exchange.getIn();
ArrayList<HashMap<String, Object>> list = (ArrayList<HashMap<String, Object>>) in.getBody();
System.out.println(list.size());
int i = 0;
}
});
拆分的答案是空的,没有什么可处理的。
你知道为什么会这样吗?
谢谢并恭祝安康
吉尔斯
**** 解决方案 ***** 感谢您的反馈。如果案例 1 运行良好,让我得到一个地图列表,对于案例 2,我必须先逐行处理它,然后再解组。在这种情况下,主体包含 POJO。
此代码有效:
.split(body().tokenize("\n"))
.unmarshal(bindy)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
Message in = exchange.getIn();
Employee emp = (Employee) in.getBody();
System.out.println(emp);
}
});
谢谢您的帮助
吉尔斯