Java 对从json数据解析的项目进行排序

Java 对从json数据解析的项目进行排序,java,android,comparable,Java,Android,Comparable,我的Android客户端获取服务器JSON响应,如下所示: {"students":[{"id":1,"name":"John","age":12}, {"id":2,"name":"Thmas","age":13} {"id":3,"name":"Merit","age":10} ...]} 我的Android客户端代码通过使用解析Java对象的JSON响应 我对应的Java类: public class Stud

我的Android客户端获取服务器JSON响应,如下所示:

{"students":[{"id":1,"name":"John","age":12},
             {"id":2,"name":"Thmas","age":13}
             {"id":3,"name":"Merit","age":10}
             ...]}
我的Android客户端代码通过使用解析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
数据)按字母顺序,按学生的
姓名进行排序。我尝试了以下方法:(我更改了
Student
类以实现
Comparable
接口):


但是排序后的
学生
仍然与排序前相同。我的排序解决方案根本不起作用为什么??我错在哪里了???

简单地实现可比性不会让你的类被排序;实际上,您必须做一些事情来对其进行排序。

仅仅因为您的类具有可比性,并不能使每个集合自动进行排序。您必须告诉特定集合使用自然排序器进行排序,方法是使用
Collections.sort(students)

gson不会对列表中的项目进行排序,它仍然只会添加项目。创建列表后,可以使用以下方法对列表进行排序:


有没有不直接使用的理由?我不熟悉java。但我认为你没有把名单整理好。尝试调用Collections.sort(学生)?您需要实际比较它们…谢谢,您能更具体一点吗?正如其他几个答案所示,Collections.sort()将是一个很好的方法。
//'jsonData' is the server responsed json data 
StudentList students = gson.fromJson(jsonData, StudentList.class)
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());      
  } 
}
//'jsonData' is the server responsed json data 
StudentList students = gson.fromJson(jsonData, StudentList.class)
java.util.Collections.sort(students);