My Android cliente ottenere risposta JSON server come segue:ordinare le ogetti che vengono analizzati da dati JSON
{"students":[{"id":1,"name":"John","age":12},
{"id":2,"name":"Thmas","age":13}
{"id":3,"name":"Merit","age":10}
...]}
Il mio codice cliente Android analizza la risposta JSON per oggetto Java utilizzando gson.
miei corrispondenti classi 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;
}
}
Tutto funziona bene per me a questo punto, posso analizzare correttamente i dati JSON ai miei oggetti Java, come segue:
//'jsonData' is the server responsed json data
StudentList students = gson.fromJson(jsonData, StudentList.class)
Poi, lo farei come modificare un bit per ottenere il students
(dai dati json
) in un ordine alfabetico , ordinato pername
dello studente. Ho provato modo seguente: (Ho cambiato classe Student
per implementare l'interfaccia 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());
}
}
Con sopra modificato Student
classe, ho cercato di analizzare i dati JSON ancora:
//'jsonData' is the server responsed json data
StudentList students = gson.fromJson(jsonData, StudentList.class)
Ma la risultato students
sono ancora gli stessi di prima dell'ordinamento. La mia soluzione di smistamento non funziona affatto. Perché ?? Dove mi sbaglio ??
C'è un motivo per non usare solo su [ 'Collections.sort()'] (http://docs.oracle.com/javase/6/ docs/api/java/util/Collections.html # sorta% 28java.util.List% 29)? – amit
Non ho familiarità con java. Ma non penso che hai risolto la lista. Prova a chiamare Collections.sort (studenti)? – Evan
devi effettivamente confrontarli ... – njzk2