JavaでJSONObjectをソートする方法は何ですか?

Javaでは、JSONObjectは順序を持たないキーと値のコレクションであり、直接的なソートはサポートされていません。ただし、JSONObjectのキーと値をリストに変換し、そのリストをソートすることができます。

JSONObject内のキーと値をリストに変換して、それをソートする例を以下に示します。

import org.json.JSONObject;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "John");
        jsonObject.put("age", 30);
        jsonObject.put("city", "New York");

        // 将JSONObject中的键值对转换为List
        List<Map.Entry<String, Object>> entries = new ArrayList<>(jsonObject.toMap().entrySet());

        // 对List进行排序
        Collections.sort(entries, new Comparator<Map.Entry<String, Object>>() {
            public int compare(Map.Entry<String, Object> entry1, Map.Entry<String, Object> entry2) {
                return entry1.getKey().compareTo(entry2.getKey());
            }
        });

        // 打印排序后的键值对
        for (Map.Entry<String, Object> entry : entries) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

結果を出力する: 結果:

age: 30
city: New York
name: John

例では、最初にJSONObjectのキーと値のペアをListに変換し、次にCollections.sortメソッドを使用してListを並べ替え、最後に並べ替えられたListをループしてキーと値のペアを出力します。比較関数では、キーのサイズを比較するためにentry1.getKey().compareTo(entry2.getKey())を使用してキーを並べ替えることができます。

bannerAds