CSVをJSONに変換する
ファイル不正時などはいったん考慮せず、ロジックだけおぼえがき。
csvToJson.java
/**
* CSVファイルの全行をJSON形式に変換する.
*/
public void csvToJson() {
// csvファイル読込
File csv = new File("csvファイルパス");
try (BufferedReader br = new BufferedReader(new FileReader(csv));) {
// 先頭行はカラム名
final String[] header = br.readLine().split(",");
List<String> jsonRecords = new LinkedList<>();
loop: while (true) {
// 全行取得
String record = br.readLine();
if (record == null) break loop;
String[] column = record.split(",");
// {"header0":"column0","header1":"column1"}という形に成形
String jsonRecord = "{" + IntStream.range(0, header.length).boxed()
.map(v -> "\"" + header[v] + "\":\"" + column[v] + "\"")
.collect(Collectors.joining(",")) + "}";
jsonRecords.add(jsonRecord);
}
// [{"header0":"0","header1":"1"},{"header0":"2","header1":"3"}]という形に接続
String json = "[" + String.join(",", jsonRecords) + "]";
System.out.println(json);
} catch (IOException e) {
}
}