2016-06-12 10 views
0

私はこのJSONJSONObjectからarraylist?なぜこのJSONExceptionですか?

{ 
    "summary": 
    { 
     "total_count":2 
    }, 
    "data": 
    [ 
     { 
      "id":"129393910815742", 
      "name":"Mike Pollito" 
     }, 
     { 
      "id":"117161088707629", 
      "name":"James Carballo" 
     } 
    ], 
    "paging": 
    { 
     "cursors": 
     { 
      "after":"mUhn", 
      "before":"QVFn" 
     } 
    } 
} 

を持っていると私はArrayListまたはいずれかの単純な配列内のIDを保存する必要があります。

注:IDの数は異なる場合があります。

問題は、私は簡単に

int amigos = listatodoslosamigos.getJSONObject("summary").getInt("total_count"); 

で「TOTAL_COUNT」を得ることができるよりもですが、私は、任意の「ID」を取得しようとすると、私はいつもJSONException

を取得

JSONObject data = listatodoslosamigos.getJSONObject("data"); 

を呼び出すとき

これはバグのコードです

public void onCompleted(GraphResponse response) { 
     /* handle the result */ 
        JSONObject listatodoslosamigos = response.getJSONObject(); 
        try { 
         int amigos = listatodoslosamigos.getJSONObject("summary").getInt("total_count"); 
         JSONObject data = listatodoslosamigos.getJSONObject("data"); 

        } catch (JSONException e) {} 
       } 
      } 
    ).executeAsync(); 
+0

"data"は配列です。 'JSONArray data = listatodoslosamigos.getJSONObject(" data ");'を実行してみてください。 –

答えて

0

はJSONであなたのdataプロパティが配列であるので、あなたは、例えば、getJSONArrayを使用する必要があります。

JSONArray data = listatodoslosamigos.getJSONArray("data"); 

あなたは.listIterator()または.getJSONObject(index)経由を使用してJSONArrayのイテレータことができます。

JSONArray data = listatodoslosamigos.getJSONArray("data"); 
JSONObject member = data.getJSONObject(0); 

また、通常のJavaコレクションまたは配列へJSONArrayをオンにするJSONArray.toCollectiondata.toArrayを使用することができます。

0

私はあなたがしたいと思う:

JSONArray data = listatodoslosamigos.getJSONArray("data"); 
0

この行が間違っています JSONObject data = listatodoslosamigos.getJSONObject( "data");

Replace this line with below line 

JSONObject data = listatodoslosamigos.getJSONArray( "data");

B'caz data is json array type and you are trying to get json object so that use found this type of exception. 
関連する問題