欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java json轉csv

林子帆2年前8瀏覽0評論

在Java開發中我們經常需要將數據以CSV格式導出,而Json是目前最常用的數據交換格式之一。那么如何將Json格式的數據轉換成CSV格式呢?這就需要使用JSON庫和CSV庫來實現。

import com.googlecode.jcsv.writer.CSVWriter;
import com.googlecode.jcsv.writer.internal.CSVWriterBuilder;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
public class JsonToCsv {
public static void jsonToCsv(String jsonString, Writer writer) throws JSONException, IOException {
//將Json字符串轉換成JSONArray對象
JSONArray jsonArray = new JSONArray(jsonString);
//創建數據列表
Listdata = new ArrayList<>();
//獲取表頭
String[] headers = getHeaders(jsonArray.getJSONObject(0));
data.add(headers);
//遍歷Json數組
for (int i = 0; i< jsonArray.length(); i++) {
//獲取當前Json對象
JSONObject jsonObject = jsonArray.getJSONObject(i);
String[] values = getValues(jsonObject, headers);
data.add(values);
}
//創建CSVWriter實例
CSVWritercsvWriter = new CSVWriterBuilder(writer)
.separator(',')
.entryConverter(new com.googlecode.jcsv.writer.CSVEntryConverter() {
@Override
public String[] convertEntry(String[] entry) {
return entry;
}
})
.build();
//寫入CSV文件
csvWriter.writeAll(data);
}
//獲取表頭
private static String[] getHeaders(JSONObject json) throws JSONException {
Listheaders = new ArrayList<>();
for (String key : json.keySet()) {
headers.add(key);
}
return headers.toArray(new String[0]);
}
//獲取數據列表
private static String[] getValues(JSONObject json, String[] headers) throws JSONException {
Listvalues = new ArrayList<>();
for (String header : headers) {
if (json.has(header)) {
values.add(json.get(header).toString());
} else {
values.add("");
}
}
return values.toArray(new String[0]);
}
}

代碼中使用了JSON庫和CSV庫來實現Json格式轉換成CSV格式的功能。其中,CSVWriter用于將數據寫入CSV文件,JSONArray和JSONObject則是Json庫提供的API,可用于解析Json字符串并獲取Json數組或Json對象的數據。通過將Json數據轉換成Java集合,我們就可以讓CSVWriter實例將數據寫入到CSV文件中了。

在使用該代碼時,由于涉及到文件輸出,需要進行文件操作,因此需要注意文件路徑和權限問題。為了簡化文件輸出的代碼,這里使用了一個Writer類,你可以傳入任何實現了Writer接口的子類,如FileWriter、StringWriter等。