我有以下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个元素等等 - 全部不同步。
这里发生了什么?我错过了一些明显的事吗?如果我不需要,我不想重新订购。这似乎比它更值得大惊小怪。
答案 0 :(得分:4)
检查http://www.json.org/javadoc/org/json/JSONObject.html,它清楚地解释了:
JSONObject是名称/值对的无序集合。
表示JSONObject不维护插入顺序。作为列表或JSONArray有。