当某些列有引号而有些列没有时,如何使用 Camel Bindy 解析 csv 文件?

Pet*_*rs_ 4 java csv apache-camel bindy

我尝试使用 Camel Bindy 来处理我的 csv 文件。文件的行如下所示:

1111;"2016-06-21";"12:15";"Test1";"1";
2222;"2016-06-21";"12:16";"Test2";"2";
Run Code Online (Sandbox Code Playgroud)

我的模型文件是:

@CsvRecord(separator = ";")
public class CsvBean implements Serializable {

    @DataField(pos = 1)
    private Integer key;

    @DataField(pos = 2, pattern = "yyyy-MM-dd")
    private Date date;

    @DataField(pos = 3, pattern = "hh-mm")
    private Date time;

    @DataField(pos = 4)
    private String title;

    @DataField(pos = 5)
    private int status;
}
Run Code Online (Sandbox Code Playgroud)

我使用 unmarshall(bindy) 方法。我得到的例外是:

java.lang.IllegalArgumentException: Parsing error detected for field defined at the position: 3, line: 1
    at org.apache.camel.dataformat.bindy.BindyCsvFactory.bind(BindyCsvFactory.java:207)
Run Code Online (Sandbox Code Playgroud)

我认为问题是第一个“id”值没有引号,而其余列有。我该如何解决?

sna*_*kar 5

你的 pos 3 模式是错误的。尝试下面的代码

 @DataField(pos = 3, pattern = "hh:mm")
Run Code Online (Sandbox Code Playgroud)