在Java開發中,CSV(逗號分隔值)和JSON(JavaScript對象表示)是兩種常見的數據存儲和交換格式。CSV是一種簡單的文本格式,用于表示表格數據,而JSON是一種輕量級的數據交換格式,廣泛用于Web應用程序中。
當我們需要將CSV轉換為JSON格式時,Java語言提供了許多開源庫和API,如Jackson、Gson等。下面是一個使用Jackson庫將CSV數據轉換為JSON數據的示例:
try { CsvSchema schema = CsvSchema.emptySchema().withHeader(); CsvMapper csvMapper = new CsvMapper(); File csvFile = new File("data.csv"); MappingIterator
上面的代碼首先創建一個空的CSV模式,并使用帶頭文件的模式構建一個CsvMapper實例。然后,讀取CSV文件的MappingIterator會將CSV文件中的所有行解析為具有給定標頭的Map對象。最后,ObjectMapper將Map列表轉換為JSON格式的字符串。
要將JSON轉換回CSV格式,我們可以使用相同的庫和API。下面是一個使用Gson庫將JSON數據轉換為CSV數據的示例:
try { BufferedReader br = new BufferedReader(new FileReader("data.json")); Gson gson = new Gson(); List>list = gson.fromJson(br, new TypeToken >>(){}.getType()); FileWriter fw = new FileWriter("data.csv"); CSVWriter csvWriter = new CSVWriter(fw); csvWriter.writeAll(list.stream().map(map ->map.values().toArray(new String[0])).collect(Collectors.toList())); csvWriter.flush(); csvWriter.close(); } catch (IOException e) { e.printStackTrace(); }
上面的代碼首先創建一個Gson實例,并使用TypeToken來指定在JSON中包含的Map列表的泛型類型。然后,它使用CSVWriter將Map列表寫入CSV文件。
綜上所述,CSV轉JSON和JSON轉CSV是Java開發中非常常見的任務。Jackson和Gson等庫和API提供了快速,簡單和可靠的方法來執行這些轉換。