要將JSON轉換為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 {
// 創建JSON解析器
JsonParser jsonParser = new JsonFactory().createParser(new File(jsonFilePath));
// 創建CSV寫入器
FileWriter csvWriter = new FileWriter(csvFilePath);
// 創建ObjectMapper以讀取JSON對象
ObjectMapper objectMapper = new ObjectMapper();
// 寫入CSV標題行
csvWriter.append("Name, Age, City\n");
// 循環解析JSON對象
while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
// 使用ObjectMapper將JSON對象轉換為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");
}
// 關閉CSV寫入器
csvWriter.flush();
csvWriter.close();
System.out.println("JSON轉換為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;
}
}
在上面的示例代碼中,我們假設輸入的JSON數據是一個包含多個Person對象的數組。代碼首先創建一個JSON解析器來讀取JSON文件。然后,使用ObjectMapper將JSON對象轉換為Java對象(Person類)。最后,將Java對象的屬性寫入CSV文件。