Java: Create CSV from Get Array with Object



我有

data= [{
id=1, 
employee_name=Tiger Nixon, 
employee_salary=320800, 
employee_age=61, 
profile_image=
}, 
{
id=2, 
employee_name=Garrett Winters, 
employee_salary=170750, 
employee_age=63, 
profile_image=
}, 
{
id=3, 
employee_name=Ashton Cox, 
employee_salary=86000, 
employee_age=66, 
profile_image=
}, 
{
id=4, 
employee_name=Cedric Kelly, 
employee_salary=433060, 
employee_age=22, 
profile_image=
}
]

我有员工类

public class Employee {
private String employee_name;
private String employee_salary;
private String employee_age;
private String id;
private String profile_image;
public String toCsvRow() {
String csvRow = "";
for (String value : Arrays.asList(employee_name,employee_salary,employee_age)) {
String processed = value;
if (value.contains(""") || value.contains(",")) {
processed = """ + value.replaceAll(""", """") + """;
}
csvRow += "," + processed;
}
return csvRow.substring(1);
}
public String getEmployee_name() {
return employee_name;
}
public String getEmployee_salary() {
return employee_salary;
}
public String getEmployee_age() {
return employee_age;
}          
}

我试过

Map<String, ArrayList<Employee>> map = mapper.readValue(url, Map.class);
ArrayList<Employee> emps = map.get("data");
emps.get(0).toCsvRow()
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to org.example.model.Employee

现在我无法使用 emps 调用 CSVRow。

使用 Gson 将 JSON 解析为 ArrayList,对于 CSV 转换,您可以使用 org.json.CDL

看到这工作正常

String str = "[{" +
"          id=1," +
"          employee_name="Tiger Nixon"," +
"          employee_salary=320800," +
"          employee_age=61," +
"          profile_image="khkjh"" +
"       }," +
"       {" +
"          id=2," +
"          employee_name="Garrett Winters"," +
"          employee_salary=170750," +
"          employee_age=63," +
"          profile_image=""" +
"       }," +
"       {" +
"          id=3," +
"          employee_name="Ashton Cox"," +
"          employee_salary=86000," +
"          employee_age=66," +
"          profile_image=""" +
"       }," +
"       {" +
"          id=4," +
"          employee_name="Cedric Kelly"," +
"          employee_salary=433060," +
"          employee_age=22," +
"          profile_image=""" +
"       }" +
"      ]";

try{
Gson gson = new Gson();
ArrayList<Employee> list = gson.fromJson(str, ArrayList.class);
String csv = CDL.toString(new JSONArray(list));
}catch (Exception e){
e.printStackTrace();
}

输出:

id,employee_name,employee_salary,employee_age,profile_image
1.0,Tiger Nixon,320800.0,61.0,khkjh
2.0,Garrett Winters,170750.0,63.0,
3.0,Ashton Cox,86000.0,66.0,
4.0,Cedric Kelly,433060.0,22.0

最新更新