我收到来自服务器的非常大的 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(使用前将#替换为@)