步骤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);
}