【问题标题】:OpenCSV not seeing column that is present in CSV fileOpenCSV 看不到 CSV 文件中存在的列
【发布时间】:2022-12-07 04:24:36
【问题描述】:

我正在尝试使用 OpenCSV 将 CSV 读入 POJO。当我尝试解析 CSV 时,出现以下错误:

Header is missing required fields [LAST NAME]. The list of headers encountered is [Last Name,First Name,User Name,Email,Roles].

我不确定为什么会出现此错误,因为 CSV 文件中存在“姓氏”列。

CSV 是:

Last Name,First Name,User Name,Email,Roles
Test1,Test2,Test3,Test4,Test5

POJO 类是:

@NoArgsConstructor
@Getter
public class SimpleUser {
    @CsvBindByName(column = "First Name", required = true)
    private String firstName;

    @CsvBindByName(column = "Last Name", required = true)
    private String lastName;

    @CsvBindByName(column = "Email", required = true)
    private String email;

    @CsvBindByName(column = "User Name", required = true)
    private String userName;

    @CsvBindAndSplitByName(column = "Roles", elementType = Double.class, collectionType = LinkedList.class)
    private List<String> roles;
}

OpenCSV 代码是:

private List<SimpleUser> getCsvUsersFromCsv(String fileLocation) {
    MappingStrategy<SimpleUser> strategy = new FuzzyMappingStrategyBuilder<SimpleUser>().build();
    strategy.setType(SimpleUser.class);

    try (Reader reader = new FileReader(fileLocation)) {
        return new CsvToBeanBuilder(reader)
                .withMappingStrategy(strategy)
                .build()
                .parse();
    }
}

上面我使用了 FuzzyMappingStrategyBuilder 只是为了看看它是否会改变任何东西但没有。

任何帮助,将不胜感激。

我在 Java 8 中使用 OpenCSV 5.5 版。

【问题讨论】:

    标签: java opencsv


    【解决方案1】:

    我发现我的 csv 文件中有一个隐藏字符。在使用新文件进行测试后,它按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 2018-06-04
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 2013-03-08
      • 2016-05-10
      相关资源
      最近更新 更多