是否可以根据索引范围将一行解析为多个bean
例:
行:“字段1”、“字段2”、“字段3”。。。。,“字段9”
class ColumnsOneAndTwo {
protected String field1;
protected String field2;
}
class ColumnThreeAndNine {
protected String field3;
protected String field9;
}
class Row {
@Parsed(indexes = 0, 1)
protected ColumnOneAndTwo fields;
@Parsed(indexes = 2, 8)
protected ColumnThreeAndNine moreFields;
}
BeanListProcessor<Row> rowProcessor = new BeanListProcessor<Row>(Row.class);
CsvRoutines routines = new CsvRoutines(parserSettings);
for (Row data : routines.iterate(Row.class, <file>, "UTF-8")) {
}
您正在寻找@嵌套
注释。只需使用:
class ColumnsOneAndTwo {
@Parsed(index=1)
protected String field1;
@Parsed(index=2)
protected String field2;
}
class ColumnThreeAndNine {
@Parsed(index=3)
protected String field3;
@Parsed(index=9)
protected String field9;
}
class Row {
@Nested
protected ColumnOneAndTwo fields;
@Nested
protected ColumnThreeAndNine moreFields;
}
希望有帮助。
免责声明:我是这个图书馆的作者。它是开源和免费的(Apache 2.0许可证)
我正在为我的一个项目评估Univocity解析器,固定宽度平面文件格式从三个细节记录(例如,以AA、BB、CC开头)生成一个记录(Bean)——这个文件可以使用Univocity解析吗 我可以使用继续阅读并添加一些自定义转换,但是是否有现成的? 更新: 可以使用:?
我试图使用univocity解析器将csv文件解析为bean的新实例和现有实例。csv是通过使用univocity BeanWriterProcessor生成的,对于我将称为set a的一组bean。 现在我想读回csv,执行以下操作: 案例1:如果行对应于最初出现在集合a中的一个bean,我不想创建一个新的bean实例,而是将csv读入“现有”实例。(即,“更新”实例)。我通过使用bean的UU
我正在尝试从GTFS读取CSV文件。在uniVocity解析器的帮助下压缩,遇到了一个我无法解决的问题。出于某种原因,某些CSV文件的第一列似乎无法正确解析。例如,在“stops.txt”文件中,如下所示: 无法正确解析“stop_id”字段,该字段的值为“null” 这是我用来读取文件的方法: 这就是我的Stop课程的样子: 如果我调用的方法,我得到这个输出是不正确的: 输出: 有人知道为什么会
我有一个文件,它有固定的行,但每一行都映射到不同的Java类。 例如 对于第一排,我有后续类: 第二排我有: 我想将TSV文件直接解析到相应的对象,但我没有什么想法。
我试图使用统一解析器来解析一个固定宽度格式的文件,该文件每行包含可变数量的固定宽度记录。 格式为记录id[6],子记录[3]的#,子记录[6] 期望的结果是有一个子记录数组。@链接注释似乎适用,但留档声明这仅适用于超文本标记语言解析器。 我目前的解决方案是将子记录解析为字符串,然后循环遍历每个记录,并在子记录字符串中插入换行符,然后重新解析。有没有一种方法可以使用univocity解析器来实现这一
我如何在ItemReader中使用Univocity一次读取一行,仍然使用BeanProcessor将我的行自动解析为Java对象?