当 JsonObject 的键被迭代时,它们的顺序与服务器响应中的顺序不同

2024-01-30

我收到来自服务器的非常大的 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);

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

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

参考文献1 http://developer.android.com/reference/org/json/JSONObject.html:

键的顺序未定义

参考2 http://www.json.org/:

对象是一组无序的名称/值对

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 JsonObject 的键被迭代时,它们的顺序与服务器响应中的顺序不同 的相关文章

随机推荐