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'以前是'在早期版本的駱駝 –