OpenCSV:将嵌套 Bean 映射到 CSV 文件
OpenCSV: Mapping a Nested Bean to a CSV file
我正在尝试将 bean 映射到 CSV 文件,但问题是我的 bean 具有其他嵌套 bean 作为属性。发生的事情是 OpenCSV 通过属性找到一个 bean,然后进入它并映射该 bean 内部的所有数据,如果它找到另一个 bean,它会继续下去。如何使用 OpenCSV 处理嵌套的 bean?我如何确保它映射嵌套 bean 的正确属性?
在 OpenCSV 5.0 中,我们可以通过 @CsvRecurse
注释映射嵌套 bean,而无需使用 MappingStrategy。
The ability to split mappings from input/output columns to member
variables of multiple embedded beans has been added through the
annotation @CsvRecurse. One root bean is still necessary.
Csv 文件
id,cardNumber,holder
1,1234567 890,abc
根豆
public class DataSet {
@CsvBindByName
private String id;
@CsvRecurse
private MyNumber myNumber;
//getter and setter
}
嵌套 bean
public class MyNumber {
@CsvBindByName
private String cardNumber;
@CsvBindByName
private String holder;
// getter and setter
}
读书豆
public static void main(String[] args) throws IOException {
BufferedReader reader = Files.newBufferedReader(Paths.get("path-to-csv-file.csv"));
List<DataSet> beans = new CsvToBeanBuilder<DataSet>(reader).withType(DataSet.class).build().parse();
}
参考:http://opencsv.sourceforge.net/#multivaluedmap_based_bean_fields_many_to_one_mappings
我正在尝试将 bean 映射到 CSV 文件,但问题是我的 bean 具有其他嵌套 bean 作为属性。发生的事情是 OpenCSV 通过属性找到一个 bean,然后进入它并映射该 bean 内部的所有数据,如果它找到另一个 bean,它会继续下去。如何使用 OpenCSV 处理嵌套的 bean?我如何确保它映射嵌套 bean 的正确属性?
在 OpenCSV 5.0 中,我们可以通过 @CsvRecurse
注释映射嵌套 bean,而无需使用 MappingStrategy。
The ability to split mappings from input/output columns to member variables of multiple embedded beans has been added through the annotation @CsvRecurse. One root bean is still necessary.
Csv 文件
id,cardNumber,holder
1,1234567 890,abc
根豆
public class DataSet {
@CsvBindByName
private String id;
@CsvRecurse
private MyNumber myNumber;
//getter and setter
}
嵌套 bean
public class MyNumber {
@CsvBindByName
private String cardNumber;
@CsvBindByName
private String holder;
// getter and setter
}
读书豆
public static void main(String[] args) throws IOException {
BufferedReader reader = Files.newBufferedReader(Paths.get("path-to-csv-file.csv"));
List<DataSet> beans = new CsvToBeanBuilder<DataSet>(reader).withType(DataSet.class).build().parse();
}
参考:http://opencsv.sourceforge.net/#multivaluedmap_based_bean_fields_many_to_one_mappings