在 univocity 中使用默认空转换时出现问题
Issue while using default null conversion in univocity
我正在使用 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 = null
对于第三种情况,我想要 referenceNumber2 = "NULL" 但它是空的。看起来因为在 ref1 univocity 之后没有逗号不应用任何 bean 转换并认为它是文件结尾。有什么办法可以在这里实现 "NULL" 吗?
这里是图书馆的作者。
我同意这是一个奇怪的行为,今天打开 this issue 来解决这个问题。
同时,如果您 select 解析器设置中的字段,您将获得所需的结果。
s.selectFields("referenceNumber1", "referenceNumber2");
另一种选择是使用默认值声明您的字段:
private String referenceNumber2 = "NULL";
两种解决方案都很糟糕,所以我将尽快修复此问题并发布 2.7.1 版本。
编辑:它已在今天发布的 2.7.1 版中修复。
我正在使用 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 = null
对于第三种情况,我想要 referenceNumber2 = "NULL" 但它是空的。看起来因为在 ref1 univocity 之后没有逗号不应用任何 bean 转换并认为它是文件结尾。有什么办法可以在这里实现 "NULL" 吗?
这里是图书馆的作者。
我同意这是一个奇怪的行为,今天打开 this issue 来解决这个问题。
同时,如果您 select 解析器设置中的字段,您将获得所需的结果。
s.selectFields("referenceNumber1", "referenceNumber2");
另一种选择是使用默认值声明您的字段:
private String referenceNumber2 = "NULL";
两种解决方案都很糟糕,所以我将尽快修复此问题并发布 2.7.1 版本。
编辑:它已在今天发布的 2.7.1 版中修复。