将CSV数据映射到自定义文件

时间:2019-11-10 20:19:10

标签: java spring-boot

我是Java Spring引导的新手,我正尝试从CSV文件读取数据,然后通过REST将这些数据传递给我的UI。

我正在使用OpenCSV来解析我的文件。这是我文件中的示例行 名,姓,卡详细信息。

卡的详细信息由卡号有效期组成。所以我的示例文本如下:

joe, keller, 123456 22-2-1999.

我的休息点的输出应该是:

{
  "firstname": "joe",
  "lastname" : "keller",
  "card number" : "123456",
  "expiry date" : 22-2-1999
}

我目前使用CsvToBeanBuilder读取文件,而且似乎难以将最后一行映射到两个不同的项目。

1 个答案:

答案 0 :(得分:1)

由于最后一列包含2个字段-卡号有效期,因此您无法直接使用CsvToBeanBuilder来读取CSV文件并将其转换为POJO 。一种替代方法如下所示:

首先,我假设您已经有一个POJO了:

class CreditCardInfo {
    private String firstname;
    private String lastname;
    private String cardNumber;
    private String expiryDate;

    //general getters and setters
    //toString()
}

然后,您可以使用CSVReader.readNext()将每一行读入字符串数组。对于CSV文件的第3列,您可以将其分成两个字段,并用空白(“”):使用String.trim()的“ 123456”和“ 22-2-1999”可以忽略前导空格。因此,您可以将这些字段分别存储到POJO cardNumber的{​​{1}}和expiryDate

代码段

CreditCardInfo

控制台输出

  

CreditCardInfo [firstname = joe,lastname = keller,cardNumber = 123456,expiryDate = 22-2-1999]