宾迪 - 阿帕奇骆驼。在解组CSV时可以忽略位置(列)吗?

时间:2014-11-19 16:50:08

标签: apache-camel bindy

我使用camel-bindy将CSV解组为Java对象。是否可以忽略特定的列? 考虑以下示例,我不想映射第3列(地址)。如果有办法,请告诉我。实际上,我的CSV中有超过10列我想忽略。

示例: - CSV文件:

 Header   : Name,Mobile,Address
 Data Row : Rabbit,007,Rabbit Hole

Java类中的Bindy映射:

@CsvRecord(separator = "," , skipFirstLine = true) 
public class Contacts {

@DataField(pos = 1, trim=true)
private String name;

@DataField(pos = 2, required = true, trim=true) 
private Long Mobile;

谢谢你的时间!

2 个答案:

答案 0 :(得分:0)

您不能跳过列。 Bindy遍历每个令牌并检查是否存在关联的数据字段,请参阅BindyCsvFactory

// Get DataField from model
DataField dataField = dataFields.get(pos);
ObjectHelper.notNull(dataField, "No position " + pos + " defined for the field: " + data + ", line: " + line);

唯一的解决方案是定义一个刚被忽略的类属性:

@DataField(pos = 1)
public String ingoreMe;

答案 1 :(得分:0)

最新版本支持 skipField

@CsvRecord(separator =“,”,skipField = true)