【发布时间】:2014-04-09 13:21:00
【问题描述】:
当我将ArrayList<Student> 转换为 json 对象时,它给出的 json 如下。
[{"firstName":"Namal","lastName":"Fernando"},{"firstName":"Lakmini","lastName":"Fernando"}]
但我无法从我得到的 json 字符串再次创建 ArrayList<Student>。我该怎么做。问题在于在 fromJson 方法中提供泛型类型的类。
我也尝试了以下方法,但失败了。
List<Student> studentsUpdated = gson.fromJson(json, new ArrayList<Student>().getClass());
List<Student> studentsUpdated = gson.fromJson(json, new ArrayList<Student>().getClass().getGenericSuperclass());
Json 读/写方法。
private void jsonUtil(){
List<Student> students = new ArrayList<Student>();
Student student1 = new Student();
student1.setFirstName("Namal");
student1.setLastName("Fernando");
students.add(student1);
Student student2 = new Student();
student2.setFirstName("Lakmini");
student2.setLastName("Fernando");
students.add(student2);
Gson gson = new Gson();
String json = gson.toJson(students);
System.out.println("jsonUtil().json : " + json);
List<Student> studentsUpdated = gson.fromJson(json, ArrayList<Student>.class); // This is the place that the error occured
}
学生班:
class Student{
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
String firstName = "-";
String lastName = "-";
}
【问题讨论】:
标签: java json class generics gson