我正在做一个Web应用程序,我想将文件存储到MongoDB
在JSP中我有这个:
<input type="file" name="thefile" id="thefile" value=""/>
在ActionForm中我有这个:
private FormFile thefile;
public FormFile getThefile() {
return thefile;
}
public void setThefile(FormFile thefile) {
this.thefile = thefile;
}
在行动中我有这个:
FormFile file = theform.getThefile();
直到这里正常运作。但现在我想将此文件转换为JSONObject。 (该文件将始终为CSV文件)
任何人都可以帮助我吗?
感谢
答案 0 :(得分:0)
第1步:
当要解析的CSV文件很简单时(字段中没有引用的字段或逗号),您可以使用简单的模式匹配器来分割CSV字段。
Pattern pattern = Pattern.compile(",");
第2步:
创建一个模型类。让模型类命名为Model
。创建一个包含该类所有字段的构造函数。
第3步:
阅读CSV数据。
try (BufferedReader in = new BufferedReader(new FileReader(csvFile));) {
List<Player> players = in .lines() .skip(1) .map(line -> {
String[] x = pattern.split(line);
return new Player(Integer.parseInt(x[0]), x[1], x[2], x[3], Integer.parseInt(x[4])); }) .collect(Collectors.toList());
}
第4步:
序列化为JSON
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String json = mapper.writeValueAsString(players);
所以,整个计划将是:
Pattern pattern = Pattern.compile(",");
try (BufferedReader in = new BufferedReader(new FileReader(csvFile));) {
List<Player>players = in .lines().skip(1).map(line - > {
String[] x = pattern.split(line);
return new Player(Integer.parseInt(x[0]), x[1], x[2], x[3], Integer.parseInt(x[4]));
}).collect(Collectors.toList());
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String json = mapper.writeValueAsString(players);
}