csv json冲突_csv转json java:代码示例

quanzhangongchengshi

温馨提示:这篇文章已超过289天没有更新,请注意相关的内容是否还可用!

csv json冲突_csv转json java:代码示例

CSV(Comma-Separated Values)和JSON(JavaScript Object Notation)是两种常用的数据格式。CSV是一种纯文本形式的表格数据格式,数据以逗号分隔,每行表示一条记录,每个字段用逗号分隔。而JSON是一种轻量级的数据交换格式,以键值对的形式表示数据,使用大括号包围,键和值之间用冒号分隔。

在Java中,我们可以使用第三方库来处理CSV和JSON数据。下面是示例代码:

1. CSV转JSON:

import com.opencsv.CSVReader;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.List;

public class CSVtoJSONConverter {

public static void main(String[] args) {

String csvFilePath = "data.csv";

String jsonFilePath = "data.json";

try {

CSVReader reader = new CSVReader(new FileReader(csvFilePath));

List<String[]> csvData = reader.readAll();

reader.close();

JSONArray jsonArray = new JSONArray();

String[] headers = csvData.get(0);

for (int i = 1; i < csvData.size(); i++) {

JSONObject obj = new JSONObject();

String[] rowData = csvData.get(i);

for (int j = 0; j < headers.length; j++) {

obj.put(headers[j], rowData[j]);

}

jsonArray.add(obj);

}

FileWriter writer = new FileWriter(jsonFilePath);

writer.write(jsonArray.toJSONString());

writer.close();

System.out.println("CSV转JSON成功!");

} catch (IOException e) {

e.printStackTrace();

}

}

}

上述代码中,我们使用了`opencsv`库来读取CSV文件,将其转换为一个包含JSONObject的JSONArray。我们创建一个CSVReader对象,读取CSV文件的数据并存储在一个List中。然后,我们创建一个JSONArray用于存储转换后的JSON数据。接下来,我们遍历CSV数据的每一行,将每一行的字段与对应的列名一一对应,并将其放入一个JSONObject中。我们将JSONArray写入到一个JSON文件中。

2. JSON转CSV:

import com.opencsv.CSVWriter;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class JSONtoCSVConverter {

public static void main(String[] args) {

String jsonFilePath = "data.json";

String csvFilePath = "data.csv";

try {

JSONParser parser = new JSONParser();

JSONArray jsonArray = (JSONArray) parser.parse(new FileReader(jsonFilePath));

List<String[]> csvData = new ArrayList<>();

JSONObject firstObj = (JSONObject) jsonArray.get(0);

Iterator<String> keys = firstObj.keySet().iterator();

String[] headers = new String[firstObj.size()];

int index = 0;

while (keys.hasNext()) {

headers[index++] = keys.next();

}

csvData.add(headers);

for (Object obj : jsonArray) {

JSONObject jsonObject = (JSONObject) obj;

String[] rowData = new String[headers.length];

for (int i = 0; i < headers.length; i++) {

rowData[i] = jsonObject.get(headers[i]).toString();

}

csvData.add(rowData);

}

CSVWriter writer = new CSVWriter(new FileWriter(csvFilePath));

writer.writeAll(csvData);

writer.close();

System.out.println("JSON转CSV成功!");

} catch (IOException | ParseException e) {

e.printStackTrace();

}

}

}

上述代码中,我们使用了`opencsv`库来写入CSV文件。我们使用JSONParser解析JSON文件,将其转换为一个JSONArray。然后,我们创建一个List来存储CSV数据。我们首先获取JSON数据的第一个对象,遍历其所有的键值对,并将键作为CSV文件的列名。接下来,我们遍历JSONArray中的每个JSONObject,将其对应的值作为CSV文件的每一行数据。我们使用CSVWriter将数据写入CSV文件中。

通过以上示例代码,我们可以实现CSV和JSON之间的相互转换。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码