CSV 和 JSON 都是兩種常見的數(shù)據(jù)格式,經(jīng)常用于數(shù)據(jù)交換。CSV(Comma Separated Values)是一種基于文本的表格數(shù)據(jù),其每一行為一條記錄,每一列用逗號(hào)分隔。而 JSON(JavaScript Object Notation)則是一種基于文本的數(shù)據(jù)交換格式,以鍵值對(duì)的形式表示數(shù)據(jù)。在 Java 中,我們可以使用一些開源庫(kù)來將 CSV 文件轉(zhuǎn)換為 JSON,從而實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。
// 導(dǎo)入所需的庫(kù) import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvSchema; import java.io.File; import java.io.IOException; // 設(shè)置 CSV 文件路徑 String csvFilePath = "path/to/csv-file.csv"; // 定義 CSV Mapper 和 CSV Schema CsvMapper csvMapper = new CsvMapper(); CsvSchema csvSchema = CsvSchema.emptySchema().withHeader(); // 讀取 CSV 文件 File csvFile = new File(csvFilePath); List<Object> csvData = csvMapper.reader().forType(Map.class).with(csvSchema).readValues(csvFile).readAll(); // 定義 JSON Mapper ObjectMapper jsonMapper = new ObjectMapper(); // 將 CSV 數(shù)據(jù)轉(zhuǎn)換為 JSON 字符串 String jsonData = jsonMapper.writeValueAsString(csvData);
以上代碼中,我們使用了 Jackson 庫(kù)中的 CsvMapper 和 ObjectMapper,前者用于讀取和解析 CSV 文件,后者用于將 CSV 數(shù)據(jù)轉(zhuǎn)換為 JSON 字符串。CsvSchema.emptySchema() 方法表示 CSV 文件中沒有表頭,而 .withHeader() 方法則表示 CSV 文件中有表頭,需要將其作為數(shù)據(jù)的第一行。
使用該方法轉(zhuǎn)換 CSV 文件為 JSON 格式,可以方便地進(jìn)行數(shù)據(jù)的處理和交換。當(dāng)然,在某些情況下,我們可能需要進(jìn)行一些額外的數(shù)據(jù)處理和轉(zhuǎn)換,具體實(shí)現(xiàn)方式可根據(jù)需求靈活調(diào)整。