我正在使用univocity解析器来解析csv文件。
@NullString(nulls = { "", " " })
@Parsed(
field = "referenceNumber1",
defaultNullRead = "NULL")
private String referenceNumber1;
@NullString(nulls = { "", " " })
@Parsed(
field = "referenceNumber2",
defaultNullRead = "NULL")
private String referenceNumber2;
第一项:“ ref1,ref2”
Bean值:referenceNumber1 = ref1,referenceNumber2 = ref2
第二个条目:“ ref1”
Bean值:referenceNumber1 = ref1,referenceNumber2 =“ NULL”
第三项:“ ref1”
Bean值:referenceNumber1 = ref1,referenceNumber2 =空
对于第三种情况,我希望referenceNumber2 =“ NULL”,但它为null。由于ref1 univocity不应用任何bean转换并认为它在文件末尾,因此没有逗号。我有什么办法可以在这里实现“ NULL”?
答案 0 :(得分:1)
这里是图书馆的作者。
我同意这是一种怪异的行为,今天打开this issue来解决此问题。
同时,如果您在解析器设置中选择字段,则将获得所需的结果。
s.selectFields("referenceNumber1", "referenceNumber2");
另一种选择是使用默认值声明您的字段:
private String referenceNumber2 = "NULL";
两个解决方案都很糟糕,因此我将尽快修复此问题并发布2.7.1版本。
编辑:它已在今天发布的2.7.1版本中修复。