0

アプリをダウンロードしているユーザーの友達を取得しようとしています。次のコードを使用しています

         String query = "SELECT uid FROM user WHERE is_app_user=1 and uid IN  (SELECT uid2 FROM friend WHERE uid1 =" + fbId + ")";
         Bundle params = new Bundle();
         params.putString("method", "fql.query");
         params.putString("query", query);
         mAsyncFacebookRunner.request(null, params, new FQLListener());

上記のコードは正常に呼び出しを行います。呼び出しが返すものを取得するのに問題があります。これは次のようになります(JSONArray)

    [{"uid":555555555},{"uid":000000000},{"uid":111111111},{"uid":222222222},{"uid":333333333}]

この情報をArrayListのようなものにするにはどうすればよいですか?

これが私が使用しているRequestListenerです。

 private class FQLListener implements RequestListener
    {

        @Override
        public void onComplete(String response, Object state) 
        {
            //get info here
        }
             }
4

2 に答える 2

1

JSONArrayを読むには、http://developer.android.com/reference/org/json/JSONArray.htmlを参照してくださいあなたはこのようなことを試すことができます:

JSONArray json = new JSONArray(server_response);
ArrayList<String> list = new ArrayList<String>();

for(int i = 0; i < json.length(); ++i){
    try{
        String uid = json.getJSONObject(i).getString("uid");
        list.add(uid);
    }
    catch(JSONException e){}
}
于 2012-05-23T07:10:25.793 に答える
0
ArrayList<String> uids = new ArrayList<String>();

try {
    JSONArray jsonArr = new JSONArray(response);

    for (int i = 0; i < jsonArr.length(); i++)
    {
        uids.add(jsonArr.getJSONObject(i).getString("uid"));
    }
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2012-05-23T07:13:51.010 に答える