Java:使用对象从Get数组创建CSV
我有 我有员工班Java:使用对象从Get数组创建CSV,java,Java,我有 我有员工班 data= [{ id=1, employee_name=Tiger Nixon, employee_salary=320800, employee_age=61, profile_image= }, { id=2, employee_name=Garrett Winters,
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-Map=mapper.readValue(url,Map.class);
ArrayList emps=map.get(“数据”);
emps.get(0.toCsvRow())
线程“main”java.lang.ClassCastException中的异常:无法将java.util.LinkedHashMap转换为org.example.model.Employee
现在我无法使用emp调用toCSVRow。用于将JSON解析为ArrayList,对于CSV转换,您可以使用
看到了吗,这很好用
String str=“[{”+
id=1+
“员工姓名=\”老虎尼克松\“+
“员工工资=320800,”+
“员工年龄=61岁,”+
“profile\u image=\“khkjh”+
" }," +
" {" +
id=2+
“员工姓名=\”Garrett Winters\“,”+
“员工工资=170750,”+
“员工年龄=63岁,”+
“配置文件\图像=\”\“”+
" }," +
" {" +
id=3+
“员工姓名=\“Ashton Cox\”+
“员工工资=86000,”+
“员工年龄=66岁,”+
“配置文件\图像=\”\“”+
" }," +
" {" +
id=4+
“员工姓名=\“Cedric Kelly\”,”+
“员工工资=433060,”+
“员工年龄=22岁,”+
“配置文件\图像=\”\“”+
" }" +
" ]";
试一试{
Gson Gson=新的Gson();
ArrayList=gson.fromJson(str,ArrayList.class);
字符串csv=CDL.toString(新的JSONArray(列表));
}捕获(例外e){
e、 printStackTrace();
}
输出:
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
用于将JSON解析为ArrayList,用于CSV转换
看到了吗,这很好用
String str=“[{”+
id=1+
“员工姓名=\”老虎尼克松\“+
“员工工资=320800,”+
“员工年龄=61岁,”+
“profile\u image=\“khkjh”+
" }," +
" {" +
id=2+
“员工姓名=\”Garrett Winters\“,”+
“员工工资=170750,”+
“员工年龄=63岁,”+
“配置文件\图像=\”\“”+
" }," +
" {" +
id=3+
“员工姓名=\“Ashton Cox\”+
“员工工资=86000,”+
“员工年龄=66岁,”+
“配置文件\图像=\”\“”+
" }," +
" {" +
id=4+
“员工姓名=\“Cedric Kelly\”,”+
“员工工资=433060,”+
“员工年龄=22岁,”+
“配置文件\图像=\”\“”+
" }" +
" ]";
试一试{
Gson Gson=新的Gson();
ArrayList=gson.fromJson(str,ArrayList.class);
字符串csv=CDL.toString(新的JSONArray(列表));
}捕获(例外e){
e、 printStackTrace();
}
输出:
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
现在还不清楚你在问什么,你的问题是什么。
map
或将其内容转换为员工对象列表是否有问题?首先我不明白的是这是数组。作为列表(员工姓名、员工工资、员工年龄)
,它不应该需要数组吗?第二个问题是,您想创建一个excel文件还是将其存储到一个名为csvRow
的变量中?是的,我想将其存储在csv格式中更新我想从这个员工数据中获取csv的问题我想它应该是Map Map=mapper.readValue(数据,new TypeReference(){})代码>而不是Map-Map=mapper.readValue(url,Map.class)代码>。阅读JSON字符串引用中的映射:不清楚您的要求和问题是什么。map
或将其内容转换为员工对象列表是否有问题?首先我不明白的是这是数组。作为列表(员工姓名、员工工资、员工年龄)
,它不应该需要数组吗?第二个问题是,您想创建一个excel文件还是将其存储到一个名为csvRow
的变量中?是的,我想将其存储在csv格式中更新我想从这个员工数据中获取csv的问题我想它应该是Map Map=mapper.readValue(数据,new TypeReference(){})代码>而不是Map-Map=mapper.readValue(url,Map.class)代码>。从JSON字符串引用读取映射: