1, first put Jsonarray in a ArrayList inside, using ArrayList sort
Jsonarray Mjsonarray;
protected void Sortjsonarraybydate (String datename) {
list<jsonobject> list = new arraylist<jsonobject> ();
Jsonobject jsonobj = null;
for (int i = 0; i < mjsonarray.length (); i++) {
Jsonobj = Mjsonarray.optjsonobject (i);
List.add (Jsonobj);
}
Sort operations
Jsoncomparator pcomparator = new Jsoncomparator (datename);
Collections.sort (list, pcomparator);
Put the data back.
Mjsonarray = new Jsonarray ();
for (int i = 0; i < list.size (); i++) {
Jsonobj = List.get (i);
Mjsonarray.put (Jsonobj);
}
}
2, implement Comparator interface, custom comparison rules
Public classJsoncomparatorImplementsComparator<jsonobject>{String Datename= ""; Jsoncomparator (String datename) { This. Datename =Datename; } @Override Public intCompare (Jsonobject json1, Jsonobject json2) {String date1=json1.optstring (datename); String Date2=json2.optstring (datename); if(Date1.compareto (Date2) < 0){ return1; }Else if(Date1.compareto (Date2) >0){ return-1; } return0; }}
Android--jsonarray sort