使用Open CSV将CSV解析为Bean

时间:2015-03-10 10:10:14

标签: java csv opencsv

我在CSV中有以下文字:

# Title: Chilling# Generated: 982398738249 (2012-01-10 04:10:21) # User name;User ID;User description;Total Space (MB); ram_prasad;MN012;ayodh rastar;11214;shyam_prasad;MN013;dwark rastar;4114;

我正在使用Open CSV进行解析:

Reader reader = new InputStreamReader(is); 
CSVReader csv = new CSVReader(reader,',');
CsvToBean<FromBackup> csvb = new CsvToBean<FromBackup>();

Map<String, String> columnMapping = new HashMap<String, String>();
columnMapping.put("User name ","userName"); //1st is column recieved in CSV and second is bean name private String userName;
columnMapping.put("User ID","userID");
columnMapping.put("User description","userDescription");
columnMapping.put("Total Space (MB)","totalSpaceHosted");
HeaderColumnNameTranslateMappingStrategy<FromBackup> strategy = new HeaderColumnNameTranslateMappingStrategy<FromBackup>();

strategy.setType(FromBackup.class);

strategy.setColumnMapping(columnMapping);

List<FromBackup> list = csvb.parse(strategy, csv);

System.out.println(""+list);

FromBackupfnb = (FromBackup)list.get(0);

System.out.println("username "+fnb.getUserName());

它给了Null。即fnb.getUsername给出NULL作为输出。 你能帮忙找出我是否做得对吗?我从网络链接收到CSV文字。试图在网上找到但无法成功。

更新

现在我做了以下事情:

CSVReader csv = new CSVReader(reader,','); //Comma instead of semi colon

ColumnPositionMappingStrategy<FromBackup> strategy = new ColumnPositionMappingStrategy<FromBackup>(); strategy.setType(FromBackup.class); 
strategy.setColumnMapping(new String [] { "userName", "User ID", "userDescription","totalSpaceHosted" }); 

结果:在第一个字段中有CSV行,即username = ram_prasad; MN012; ayodh rastar; 11214但UserID,UserDescription,TotalSpaceHosted仍为NULL。

当我放入半冒号时,它会给出解析错误

0 个答案:

没有答案