我正在使用带有 BeanListProcessor 的单义性解析器来映射到我的 Java Bean,这很好,前提是列名不会改变。但是,我还需要解析一个 csv 文件,该文件为每种类型的用户提供不同的列。我为每个用户存储了到我的标准列名的映射,但是如何将它动态解析到我的 pojo 而无需修改文件。我不能使用 HeaderTransformer,因为它仍然不是动态的。如果您需要更多信息,请告诉我。我使用的版本是 2.6.3
例如:
BeanListProcessor<MyPojo> rowProcessor = new BeanListProcessor<MyPojo>(MyPojo.class);
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setProcessor(rowProcessor);
parserSettings.setHeaderExtractionEnabled(true);
CsvParser parser = new CsvParser(parserSettings);
parser.parse(getReader(file));
List<MyPojo> pojos= rowProcessor.getBeans();
pojos.forEach(v -> System.out.println(v.toString()));
public class MyPojo{
@Trim
@Parsed
private String myColumn1;
@Trim
@Parsed
private String myColumn2;
……
用户 1 文件:用户 1
列,用户 2 列\n 数据 1,数据 2
用户 1 映射
user1Column -> myColumn1
user2Column -> myColumn2