我正在尝试将bean映射到CSV文件,但我的bean有其他嵌套bean作为属性的问题。所发生的情况是,OpenCSV遍历属性,找到一个bean,然后进入它并映射该bean内部的所有数据,如果它找到另一个bean,它就会继续进行下去。如何使用OpenCSV处理嵌套bean?如何确保它映射嵌套bean的正确属性?
发布于 2019-12-11 15:39:29
在OpenCSV 5.0中,我们可以通过@CsvRecurse注释映射嵌套bean,而无需使用MappingStrategy。
通过注释@CsvRecurse添加了将映射从输入/输出列拆分到多个嵌入式been的成员变量的能力。仍然需要一个根bean。
Csv文件
id,cardNumber,holder
1,1234567 890,abc根豆
public class DataSet {
@CsvBindByName
private String id;
@CsvRecurse
private MyNumber myNumber;
//getter and setter
}嵌套豆
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
https://stackoverflow.com/questions/59226581
复制相似问题