You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

org.json.JSONObject的sortedKeys()方法为何在新版本jar中被移除?如何实现排序?

解决json-20230618.jar中键的有序排列问题

方法一:手动提取并排序键

新版本移除了sortedKeys()方法,你可以手动提取所有键并排序,再按顺序遍历处理:

import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class JsonKeySortDemo {
    public static void main(String[] args) {
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("b", "valB");
        jsonObj.put("a", "valA");
        jsonObj.put("c", "valC");

        // 提取所有键并按字典序排序
        List<String> sortedKeys = new ArrayList<>(jsonObj.keySet());
        Collections.sort(sortedKeys);

        // 按排序后的键遍历JSON对象
        for (String key : sortedKeys) {
            Object value = jsonObj.get(key);
            // 这里处理键值对,比如输出或业务逻辑
            System.out.println(key + ": " + value);
        }
    }
}

方法二:保留插入顺序(若需求为插入顺序而非字典序)

org.json的JSONObject默认基于LinkedHashMap实现,会自动保留键的插入顺序。如果你的需求是维持插入时的顺序,直接使用默认的JSONObject即可,无需额外操作。

注意事项

  • 若之前代码依赖sortedKeys()返回的迭代器,直接替换为手动排序后的键列表迭代即可。
  • 确认导入的是org.json.JSONObject,避免与其他JSON库的类冲突。

内容的提问来源于stack exchange,提问作者DAK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:18:12