JSONArray.names()重新排序对象?

时间:2012-03-30 11:47:37

标签: java android json

我有以下json从API返回给我。

"sections": {
  "1": {
    "title":"Within 1 Km",
    "count":6
  },
  "3": {
    "title":"Within 3 Km",
    "count":1
  },
  ....and some more here

这不值得,这不是JSON数组。

我需要遍历包含在节中的对象,但由于它不是JSON数组,我正在提取名称(“1”,“3”等等)并循环选择每个对象的JSON

JSONObject jsSecs = new JSONObject(data).getJSONObject("sections");
JSONArray jsSecsArray = jsSecs.names();

我注意到JSONArray.names()将从JSON返回一个无序名称数组。

我预计第0个元素包含“1”,第1个元素包含“3”。

我得到的是包含“10”的第0个元素,包含“1”的第2个元素等等 - 全部不同步。

这里发生了什么?我错过了一些明显的事吗?如果我不需要,我不想重新订购。这似乎比它更值得大惊小怪。

1 个答案:

答案 0 :(得分:4)

检查http://www.json.org/javadoc/org/json/JSONObject.html,它清楚地解释了:

JSONObject是名称/值对的无序集合。

表示JSONObject不维护插入顺序。作为列表或JSONArray有。