我使用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;
谢谢你的时间!
答案 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)