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
相关产品推荐
相关产品推荐

