如何迭代 JSONObject?

2022-08-31 04:42:25

我使用一个名为的JSON库(如果需要,我不介意切换)。JSONObject

我知道如何迭代 ,但是当我从Facebook解析JSON数据时,我没有得到一个数组,只有一个,但我需要能够通过它的索引访问一个项目,比如获取第一个,我不知道该怎么做。JSONArraysJSONObjectJSONObject[0]

{
   "http://http://url.com/": {
      "id": "http://http://url.com//"
   },
   "http://url2.co/": {
      "id": "http://url2.com//",
      "shares": 16
   }
   ,
   "http://url3.com/": {
      "id": "http://url3.com//",
      "shares": 16
   }
}

答案 1

也许这会有所帮助:

JSONObject jsonObject = new JSONObject(contents.trim());
Iterator<String> keys = jsonObject.keys();

while(keys.hasNext()) {
    String key = keys.next();
    if (jsonObject.get(key) instanceof JSONObject) {
          // do something with jsonObject here      
    }
}

答案 2

对于我的情况,我发现迭代工作很好names()

for(int i = 0; i<jobject.names().length(); i++){
    Log.v(TAG, "key = " + jobject.names().getString(i) + " value = " + jobject.get(jobject.names().getString(i)));
}