一尘不染

迭代JsonObject的密钥时,它们的顺序与服务器响应中的顺序不同

json

我收到来自JSON字符串服务器的很大响应。我将其转换为JSON对象,然后获取密钥并对其进行迭代。

问题是,当我进行迭代时,它的顺序与服务器的响应顺序相同。

接下来,我通过添加所有键List<String>并对其进行排序来应用另一种方法,然后获得该方法的迭代器,但仍然不是我所需要的(作为响应)。

代码示例在这里:

JSONObject jsonObject = new JSONObject(responseString);
    Iterator<String> myIter = jsonObject.keys();


    List<String> sortKey = new ArrayList<String>();

    while(myIter.hasNext()){
        sortKey.add(myIter.next());
    }
    Collections.sort(sortKey);

阅读 247

收藏
2020-07-27

共1个答案

一尘不染

JSON对象的键顺序不应该有意义。如果要特定顺序,则应使用数组,而不是对象。

您的Java代码按字母顺序对键进行排序。无法获得对象中键的初始顺序。

参考1

键的顺序未定义

参考2

对象是名称/值对的无序集合

2020-07-27