我收到来自JSON字符串服务器的很大响应。我将其转换为JSON对象,然后获取密钥并对其进行迭代。
问题是,当我进行迭代时,它的顺序与服务器的响应顺序相同。
接下来,我通过添加所有键List<String>并对其进行排序来应用另一种方法,然后获得该方法的迭代器,但仍然不是我所需要的(作为响应)。
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);
JSON对象的键顺序不应该有意义。如果要特定顺序,则应使用数组,而不是对象。
您的Java代码按字母顺序对键进行排序。无法获得对象中键的初始顺序。
参考1:
键的顺序未定义
参考2:
对象是名称/值对的无序集合