如何在android中读取fql响应

如何在android中读取fql响应,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我经历了以下几点: 其中包含以下代码(为了简单起见,我更改了fql查询): 具体查看Log.i,response.toString()返回以下格式的内容: Result: {Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"name":"John Doe"},{"name":"Jake Josh"}]}}, error: null, isFr

我经历了以下几点:

其中包含以下代码(为了简单起见,我更改了fql查询):

具体查看Log.i,response.toString()返回以下格式的内容:

Result: {Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"name":"John Doe"},{"name":"Jake Josh"}]}}, error: null, isFromCache:false}
现在我的假设是响应是json obj,所以我尝试了以下方法:

JSONObject json=new JSONObject(response);
public void onCompleted(Response response) {
     Log.i(TAG, "Result: " + response.toString());
     parseUserFromFQLResponse(response);
} 
但是这不起作用,所以我不确定如何读取我得到的响应,严格地说,我只想在名称上循环,但不知道如何从 对于,看起来您可以做到:

JSONObject data = response.getGraphObject().getInnerJSONObject();
试试这个:

public static final void parseUserFromFQLResponse( Response response )
{
    try
    {
        GraphObject go  = response.getGraphObject();
        JSONObject  jso = go.getInnerJSONObject();
        JSONArray   arr = jso.getJSONArray( "data" );

        for ( int i = 0; i < ( arr.length() ); i++ )
        {
            JSONObject json_obj = arr.getJSONObject( i );

            String name   = json_obj.getString( "name" );

            //...

        }
    }
    catch ( Throwable t )
    {
        t.printStackTrace();
    }
}

尝试使用发布的解决方案来解决您的问题。
public void onCompleted(Response response) {
     Log.i(TAG, "Result: " + response.toString());
     parseUserFromFQLResponse(response);
}