我的 Android 客户端获取服务器 JSON 响应如下:
{"students":[{"id":1,"name":"John","age":12},
{"id":2,"name":"Thmas","age":13}
{"id":3,"name":"Merit","age":10}
...]}
我的 Android 客户端代码使用gson解析对 Java 对象的 JSON 响应。
我对应的Java类:
public class StudentList{
private List<Student> students;
public List<Student> getStudents(){
return students;
}
}
public class Student{
private long id;
private String name;
private int age;
public long getId() {
return id;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
此时对我来说一切正常,我可以成功地将 JSON 数据解析为我的 Java 对象,如下所示:
//'jsonData' is the server responsed json data
StudentList students = gson.fromJson(jsonData, StudentList.class)
然后,我想修改一下以按字母顺序获取students
(来自json
数据),按学生的name
. 我尝试了以下方式:(我更改了Student
类以实现Comparable<>
接口):
public class Student implements Comparable<Student>{
private long id;
private String name;
private int age;
public long getId() {
return id;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
// Override compareTo(), sort by 'name'
@Override
public int compareTo(Student obj) {
return this.getName().compareToIgnoreCase(obj.Name());
}
}
使用上述修改后Student
的类,我尝试再次解析 json 数据:
//'jsonData' is the server responsed json data
StudentList students = gson.fromJson(jsonData, StudentList.class)
但是结果students
还是和排序前一样。我的排序解决方案根本不起作用。为什么??我哪里错了??