gpt4 book ai didi

java - 使用 Jackson CSV 将 CSV 解析为 POJO 列表

转载 作者:行者123 更新时间:2023-11-30 06:06:42 32 4
gpt4 key购买 nike

我有一个字符串,其中包含 CSV 数据,并希望将其解析为 POJO 列表。

如何使用 Jackson CSV 执行此操作?

奖励:如何才能使其使用 CSV header ?

<小时/>

我的两次不成功的尝试:

CsvMapper mapper = new CsvMapper();
// First attempt
CsvSchema schema = mapper.schemaFor(POJO.class);
// Second attempt
CsvSchema schema = CsvSchema schema = CsvSchema.emptySchema().withHeader();

System.out.println(schema.usesHeader());
String content = new String(inputFile.getBytes());
MappingIterator<POJO> it = mapper.readerFor(POJO.class).with(schema).readValues(content);

return it.readAll();

第一次尝试以随机顺序填充属性,该顺序不是 CSV 列的顺序,也不是 POJO 属性的顺序。

第二次尝试出现以下错误:

Unrecognized field "attribute2" (class uk.ac.packagename.POJO), not marked as ignorable (6 known properties: "attribute2", "attribute3", "attribute4", "attribute5", "attribute6", "attribute1"]) at [Source: java.io.StringReader@617bb5db; line: 2, column: 14] (through reference chain: uk.ac.packagename.POJO["attribute2"])

最佳答案

事实证明,由于我的 CSV 来自 MultipartFile,作为文件上传的一部分,因此在前面添加了一个不可见的字符。 (虽然不知道为什么)

我通过过滤原始 CSV 字符串中的非字母数字字符来修复此问题:

content.replaceAll("^[\\W]","");

然后标记为“第二次尝试”的方法完美运行。

关于java - 使用 Jackson CSV 将 CSV 解析为 POJO 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51158173/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com