溫馨提示×

java怎么實(shí)現(xiàn)json轉(zhuǎn)csv

小億
296
2023-06-28 19:53:43
欄目: 編程語言

要將JSON轉(zhuǎn)換為CSV,可以使用Java中的Jackson庫。以下是一個示例代碼:

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class JsonToCsvConverter {
public static void main(String[] args) {
String jsonFilePath = "input.json";
String csvFilePath = "output.csv";
try {
// 創(chuàng)建JSON解析器
JsonParser jsonParser = new JsonFactory().createParser(new File(jsonFilePath));
// 創(chuàng)建CSV寫入器
FileWriter csvWriter = new FileWriter(csvFilePath);
// 創(chuàng)建ObjectMapper以讀取JSON對象
ObjectMapper objectMapper = new ObjectMapper();
// 寫入CSV標(biāo)題行
csvWriter.append("Name, Age, City\n");
// 循環(huán)解析JSON對象
while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
// 使用ObjectMapper將JSON對象轉(zhuǎn)換為Java對象
Person person = objectMapper.readValue(jsonParser, Person.class);
// 將Java對象的屬性寫入CSV行
csvWriter.append(person.getName())
.append(",")
.append(String.valueOf(person.getAge()))
.append(",")
.append(person.getCity())
.append("\n");
}
// 關(guān)閉CSV寫入器
csvWriter.flush();
csvWriter.close();
System.out.println("JSON轉(zhuǎn)換為CSV成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
private String city;
// getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}

在上面的示例代碼中,我們假設(shè)輸入的JSON數(shù)據(jù)是一個包含多個Person對象的數(shù)組。代碼首先創(chuàng)建一個JSON解析器來讀取JSON文件。然后,使用ObjectMapper將JSON對象轉(zhuǎn)換為Java對象(Person類)。最后,將Java對象的屬性寫入CSV文件。

0