0
我使用Bindy用骆驼来处理CSV文件。骆驼Bindy - 斯普利特()不工作
下面的代码,请从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;
}
});
分裂的答案是空的,并没有什么处理。
你有任何想法,为什么出现这种情况?
感谢和问候
吉尔斯
**** SOLUTION ***** 感谢您的反馈意见。如果案例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);
}
});
谢谢您的帮助
吉尔斯
你认为你使用的HashMap的ArrayList,也许铸造身体造成这种思念? –
我甚至没有输入过程方法,因为结果是空的。因此,目前没有投射 – Gilles
尝试在分割之前标记消息。 '.split(体()。记号化( ''))'还要注意的是'split'以前是'在早期版本的骆驼 –