前提
Javaの勉強でCSVファイルを取得してそのファイル内のデータをJSON形式にするプログラム作っています。
しかし、以下のようになっております。
・文字化けしている。
・JSON形式が想定でない。
以上、2点を解決するにはどのようにコードを修正すれば手詰まりになっています。
お手数ですが、ご協力をお願いいたします。
CSVファイルの中身と想定のJSON形式
【Zukan.csv】
ID Name Type
1 ニャオハ 草
2 クワッス 水
3 ホゲータ 炎
4 パモ 電気
5 グルトン 無
【想定のJSON形式】
{"ID": ["Name", "Type"],"1": ["ニャオハ", "草"],"2": ["クワッス", "水"],"3": ["ホゲータ", "炎"],"4": ["パモ", "電気"],"5": ["グルトン", "無"]}
現状の結果
[["ID","Name","Type"],["1","�j���I�n","��"],["2","�N���b�X","��"],["3","�z�Q�[�^","��"],["4","�p��","�d�C"],["5","�O���g��","��"]]
ソースコード
Java
1import java.io.BufferedReader; 2import java.io.File; 3import java.io.FileReader; 4import java.nio.file.Path; 5import java.nio.file.Paths; 6import java.util.ArrayList; 7import java.util.List; 8 9import com.fasterxml.jackson.databind.ObjectMapper; 10 11public class CsvtoJsonSample { 12 public static void main(String[] args) { 13 Path csvPash = Paths.get("C:\\Zukan.csv"); 14 BufferedReader br = null; 15 String json = null; 16 // データを格納するリスト 17 List<String[]> data = new ArrayList<String[]>(); 18 try { 19 File file = new File(csvPash.toString()); 20 br = new BufferedReader(new FileReader(file)); 21 ObjectMapper mapper = new ObjectMapper(); 22 // readLineで一行ずつ読み込む 23 String line; 24 while ((line = br.readLine()) != null) { 25 // lineをカンマで分割し、配列リストdataに追加 26 data.add(line.split(",")); 27 } 28 System.out.println(data); 29 json = mapper.writeValueAsString(data); 30 System.out.println(json); 31 32 } catch (Exception e) { 33 } 34 } 35}
回答2件
あなたの回答
tips
プレビュー