JSONArrayのソート方法【Java】基本と応用
JSONArrayをソートするには、以下の手順に従う必要があります。
- 最初に、JSONArrayをListオブジェクトに変換して、ソート操作を行いやすくします。次のコードを使用して、JSONArrayをListに変換することができます:
JSONArray jsonArray = new JSONArray("[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30},{\"name\":\"Charlie\",\"age\":20}]");
List<Object> list = jsonArray.toList();
- その後、ListをCollections.sort()メソッドを使ってソートします。 Comparatorをカスタマイズしてソート規則を指定することができます。 たとえば、ageフィールドで昇順にソートする場合:
Collections.sort(list, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
JSONObject obj1 = new JSONObject((Map) o1);
JSONObject obj2 = new JSONObject((Map) o2);
int age1 = obj1.getInt("age");
int age2 = obj2.getInt("age");
return age1 - age2;
}
});
- 最後に、ソートされたリストをJSONArrayに変換します。ListをJSONArrayに変換するためには、以下のコードを使用できます:
JSONArray sortedJsonArray = new JSONArray(list);
System.out.println(sortedJsonArray.toString());
以上の手順を経ることで、JSONArrayをソートすることができます。