我们如何在Java中对JSONArray进行排序?

How can we sort a JSONArray in Java?

我们可以在以下示例中对JSONArray进行排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.*;
import org.json.*;
public class SortJSONArrayTest {
 public static void main(String[] args) {
   String jsonStr ="[ {"ID":"115","Name":"Raja" },{"ID":"120","Name":"Jai" },{"ID":"125","Name":"Adithya" }]";
   JSONArray jsonArray = new JSONArray(jsonStr);
   JSONArray sortedJsonArray = new JSONArray();
   List list = new ArrayList();
   for(int i = 0; i < jsonArray.length(); i++) {
    list.add(jsonArray.getJSONObject(i));
   }
   System.out.println("Before Sorted JSONArray:" + jsonArray);
   Collections.sort(list, new Comparator() {
    private static final String KEY_NAME ="Name";
    @Override
    public int compare(JSONObject a, JSONObject b) {
      String str1 = new String();
      String str2 = new String();
      try {
       str1 = (String)a.get(KEY_NAME);
       str2 = (String)b.get(KEY_NAME);
      } catch(JSONException e) {
       e.printStackTrace();
      }
     return str1.compareTo(str2);
    }
   });
   for(int i = 0; i < jsonArray.length(); i++) {
    sortedJsonArray.put(list.get(i));
   }
   System.out.println("Sorted JSON Array with Name:" + sortedJsonArray);
 }
}

输出量

1
2
3
4
5
6
7
8
Before Sorted JSONArray:
[{"ID":"115","Name":"Raja"},
 {"ID":"120","Name":"Jai"},
 {"ID":"125","Name":"Adithya"}]
Sorted JSON Array with Name:
[{"ID":"125","Name":"Adithya"},
 {"ID":"120","Name":"Jai"},
 {"ID":"115","Name":"Raja"}]