在Java編程中,CSV(Comma Separated Values)和JSON(JavaScript Object Notation)是兩種常用的數據格式,通常在不同的應用程序或系統之間進行數據交換和傳輸。如何將CSV轉換成JSON格式是一個常見的需求,在此我們介紹一種簡單的Java實現方法。
首先,我們需要導入相關的依賴庫。JSON數據格式的解析和構建可以使用GSON庫實現,而CSV數據格式的解析可以使用Apache Commons CSV庫。在Maven項目中可以添加以下依賴:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.8</version> </dependency>
下面是Java程序的主要代碼實現:
import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class CsvToJsonConverter { public static void main(String[] args) throws IOException { String csvFilePath = "data.csv"; String jsonFilePath = "data.json"; // 定義CSV文件格式 CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader(); // 解析CSV文件 CSVParser csvParser = new CSVParser(new FileReader(csvFilePath), csvFormat); List<CSVRecord> csvRecords = csvParser.getRecords(); // 轉換成JSON數據格式 List<Object> jsonData = new ArrayList<>(); for (int i = 1; i < csvRecords.size(); i++) { CSVRecord record = csvRecords.get(i); String json = new Gson().toJson(record.toMap()); jsonData.add(new Gson().fromJson(json, Object.class)); } String jsonOutput = new GsonBuilder().setPrettyPrinting().create().toJson(jsonData); // 寫入到文件 FileWriter fileWriter = new FileWriter(jsonFilePath); fileWriter.write(jsonOutput); fileWriter.flush(); fileWriter.close(); } }
這段代碼中,我們首先定義了CSV文件的格式,并通過Apache Commons CSV庫解析了CSV文件。然后通過GSON庫將CSV文件中的每一行數據轉換成JSON對象,并將它們存儲在一個列表中。最后,使用GSON庫將這個列表轉換成JSON格式,并將其寫入到一個JSON文件中。
使用上述的代碼,我們可以輕松地將CSV文件轉換成JSON格式,并方便地進行數據交換和傳輸。