Java 解析csv时获取已识别字段错误消息

Java 解析csv时获取已识别字段错误消息,java,jackson,jackson-databind,Java,Jackson,Jackson Databind,我正在尝试使用Jackson库将CSV文件转换为JSON。我创建了类似于CSV文件头的POJO类属性。但即使面临无法识别的字段错误问题 这是我的密码 public static List<SalesValidationDetails> parseCSVFile(File file) throws IOException { CsvMapper csvMapper = new CsvMapper(); M

我正在尝试使用Jackson库将CSV文件转换为JSON。我创建了类似于CSV文件头的POJO类属性。但即使面临无法识别的字段错误问题

这是我的密码

    public static List<SalesValidationDetails> parseCSVFile(File file) throws IOException {
                
          CsvMapper csvMapper = new CsvMapper();
          MappingIterator<SalesValidationDetails> eachSale = 
          csvMapper.readerWithTypedSchemaFor(SalesValidationDetails.class).readValues(file);
    return eachSale.readAll();

}
我的CSV文件如下所示:

我的错误消息:

Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "transactionPartNew" (class com.decathlon.beans.SalesValidationDetails), not marked as ignorable (7 known properties: "currency", "newSalePrice", "statusNote", "orderReference", "date", "status", "transactionPartsNew"])
 at [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); line: 1, column: 94] (through reference chain: com.decathlon.beans.SalesValidationDetails["transactionPartNew"])

有谁能帮我这里出了什么问题,我已经尝试了所有的方法。

您的定居者执行错误,应该是(仅一个setter的示例):


因此,您必须为对象的字段赋值。

我可以看到CSV中的“TransactionPartsNew”在列名中有一个空格或制表符。是打字错误。如果是这样,请您尝试删除空格,然后再试一次。@AlexanderMakarov,很抱歉,写问题时出错了。实际上页眉中没有空格。我可以知道你们有公共的getter和setter吗?你能粘贴这个类的剩余部分吗?@AlexanderMakarov是的,我已经添加了一个,你能尝试将getTransactionPartNew重命名为getTransactionPartsNew吗(你的方法中的单词部分缺少“s”)?好的,我的错。明白了:)我可以知道如何按顺序阅读csv吗?。因为现在值被随机分配,所以不能立即回答您,所以您可以尝试检查Jackson文档;但您有日期字段,因此可以使用它来恢复订单。
Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "transactionPartNew" (class com.decathlon.beans.SalesValidationDetails), not marked as ignorable (7 known properties: "currency", "newSalePrice", "statusNote", "orderReference", "date", "status", "transactionPartsNew"])
 at [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); line: 1, column: 94] (through reference chain: com.decathlon.beans.SalesValidationDetails["transactionPartNew"])
...

public void setTransactionPartsNew(String TransactionPartsNew) {
    this.TransactionPartsNew = TransactionPartsNew;
}
...