gpt4 book ai didi

android - 如何在android中读取fql响应

转载 作者:行者123 更新时间:2023-11-29 18:03:48 25 4
gpt4 key购买 nike

我一直在进行以下操作: https://developers.facebook.com/docs/howtos/androidsdk/3.0/run-fql-queries/#step2

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

queryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String fqlQuery = "SELECT name FROM user WHERE uid IN " +
"(SELECT uid2 FROM friend WHERE uid1 = me()LIMIT 2)";
Bundle params = new Bundle();
params.putString("q", fqlQuery);
Session session = Session.getActiveSession();
Request request = new Request(session,
"/fql",
params,
HttpMethod.GET,
new Request.Callback(){
public void onCompleted(Response response) {
Log.i(TAG, "Result: " + response.toString());
}
});
Request.executeBatchAsync(request);
}
});

具体查看 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 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);
}

关于android - 如何在android中读取fql响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14422718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com