Java CSV 解析成 JSON:示例代码和详细说明

这是一个解析 CSV 文件并将其转换为 JSON 的 Java 示例代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

public class CSVtoJSONParser {

    public static void main(String[] args) {
        String csvFilePath = 'path/to/csv/file.csv';
        List<String[]> csvData = readCSV(csvFilePath);
        if (csvData != null) {
            List<JsonData> jsonDataList = parseCSVtoJSON(csvData);
            String json = convertListToJson(jsonDataList);
            System.out.println(json);
        }
    }

    private static List<String[]> readCSV(String csvFilePath) {
        List<String[]> csvData = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(csvFilePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                String[] data = line.split(',');
                csvData.add(data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return csvData;
    }

    private static List<JsonData> parseCSVtoJSON(List<String[]> csvData) {
        List<JsonData> jsonDataList = new ArrayList<>();
        String[] headers = csvData.get(0);
        for (int i = 1; i < csvData.size(); i++) {
            String[] row = csvData.get(i);
            JsonData jsonData = new JsonData();
            for (int j = 0; j < row.length; j++) {
                String header = headers[j];
                String value = row[j];
                jsonData.addProperty(header, value);
            }
            jsonDataList.add(jsonData);
        }
        return jsonDataList;
    }

    private static String convertListToJson(List<JsonData> jsonDataList) {
        Gson gson = new Gson();
        return gson.toJson(jsonDataList);
    }

    private static class JsonData {
        private final List<JsonProperty> properties;

        public JsonData() {
            properties = new ArrayList<>();
        }

        public void addProperty(String name, String value) {
            properties.add(new JsonProperty(name, value));
        }
    }

    private static class JsonProperty {
        private final String name;
        private final String value;

        public JsonProperty(String name, String value) {
            this.name = name;
            this.value = value;
        }
    }
}

这个示例代码中,CSVtoJSONParser 类包含了三个主要方法:

  1. readCSV 方法用于读取 CSV 文件并将数据存储在一个 List<String[]> 中。
  2. parseCSVtoJSON 方法将 CSV 数据转换为 JSON 数据,其中将第一行作为列名,将其余行的数据与列名一一对应转换为 JSON 对象。
  3. convertListToJson 方法使用 Gson 库将 JSON 数据转换为 JSON 字符串。

你需要将 csvFilePath 变量的值替换为你实际的 CSV 文件路径,并在运行程序时,确保你已经添加了 Gson 库的依赖。

Java CSV 解析成 JSON:示例代码和详细说明

原文地址: https://www.cveoy.top/t/topic/fH4Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录