java - 读取具有已知和未知列的 CSV 文件 java
问题描述
我想知道是否有办法读取具有已知和未知列的 csv 文件。
例如,第一个 csv 文件中的列是: id、firstname、lastname、city、country未知的列是 city 和 country
第二个 csv 文件是:
id, firstname, lastname, phone number unknwon 列是电话号码
我要解析的对象是:
public class Person {
Long id;
String firstname;
String lastname;
Map<String,String> additionalInfo;
}
AdditionalInfo 映射将包含“未知”列作为键,值将是该列中的行值。
有任何想法吗?
谢谢。
解决方案
OpenCSV 允许您使用@CsvBindAndJoinByName
注释执行与此类似的操作。取自文档:
public class Demonstration {
@CsvBindByName(column = "index")
private String index;
@CsvBindAndJoinByName(column = ".*", elementType = String.class)
private MultiValuedMap<String, String> theRest;
// Getters and setters go here
}
相同的文档提到了一个警告:如果你有多个,你必须小心不要有重叠的模式@CsvBindAndJoinByName
,否则结果是不确定的。
推荐阅读
- arrays - 如何在python中执行快速切割零边缘?
- plot - Printing custom label every n elements using Gnuplot
- angularjs - 将 Angular 指令属性绑定到父控制器
- php - smarty_internal_templatebase 中的 Prestashop 1.6 php 错误
- racket - 过滤器和过滤器映射有什么区别?
- python - sqlalchemy 提交前多次刷新
- r - Summarising Data in R
- r - 我可以在 R markdown 的等式中删除文本吗
- html - 用插槽的父级中不允许的元素填充 HTML 模板插槽是否总是有效的?
- javascript - 遍历嵌套的 JSON 对象以查找值 id