Java OpenCSV将具有嵌套bean的对象转换为csv
我试图将一个bean映射到一个包含选定列(不是所有列)的CSV文件,但问题是我的bean有其他嵌套bean作为属性Java OpenCSV将具有嵌套bean的对象转换为csv,java,spring,csv,javabeans,opencsv,Java,Spring,Csv,Javabeans,Opencsv,我试图将一个bean映射到一个包含选定列(不是所有列)的CSV文件,但问题是我的bean有其他嵌套bean作为属性 Class Student { @CsvBindByName private String s_id; @CsvBindByName private String name; @CsvRecurse private List<Book> books; } Class Book { @CsvBindByName private String bookName;
Class Student {
@CsvBindByName
private String s_id;
@CsvBindByName
private String name;
@CsvRecurse
private List<Book> books;
}
Class Book {
@CsvBindByName
private String bookName;
private String bookAuthor;
}
我尝试了下面的代码,但没有获得csv中的bookName
ColumnPositionMappingStrategy<Student> mapStrategy
= new ColumnPositionMappingStrategy<>();
mapStrategy.setType(Student.class);
String[] columns = new String[]{"s_id", "name", "bookName"};
mapStrategy.setColumnMapping(columns);
StatefulBeanToCsv<Student> btcsv = new StatefulBeanToCsvBuilder<Student>(writer)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.withMappingStrategy(mapStrategy)
.withSeparator(';')
.build();
btcsv.write(students);
列位置映射策略映射策略
=新列位置映射策略();
mapStrategy.setType(Student.class);
String[]columns=新字符串[]{“s_id”、“name”、“bookName”};
setColumnMapping(列);
StatefulBeanToCsv btcsv=新的StatefulBeanToCsvBuilder(编写器)
.带引号(CSVWriter.无引号字符)
.withMappingStrategy(地图策略)
.带分隔符(“;”)
.build();
btcsv.write(学生);
谁能帮帮我吗
ColumnPositionMappingStrategy<Student> mapStrategy
= new ColumnPositionMappingStrategy<>();
mapStrategy.setType(Student.class);
String[] columns = new String[]{"s_id", "name", "bookName"};
mapStrategy.setColumnMapping(columns);
StatefulBeanToCsv<Student> btcsv = new StatefulBeanToCsvBuilder<Student>(writer)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.withMappingStrategy(mapStrategy)
.withSeparator(';')
.build();
btcsv.write(students);