处理Android Facebook API';s响应对象
当前的Facebook API v3.0.2.b将返回一个保存响应的com.Facebook.Response对象。你知道怎么解析这个吗?以下代码将引发异常:( 错误消息显示:处理Android Facebook API';s响应对象,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,当前的Facebook API v3.0.2.b将返回一个保存响应的com.Facebook.Response对象。你知道怎么解析这个吗?以下代码将引发异常:( 错误消息显示: org.json.JSONException: Unterminated object at character 25 of {Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data
org.json.JSONException: Unterminated object at character 25 of {Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"pic_square":.....
有人知道什么是正确的解决方案吗?我要用吗
GraphObject go = response.getGraphObject();
…我怎样才能得到GraphUser对象
抱歉,这似乎是一个微不足道的问题,但facebook文档中对响应对象的处理记录得很差,我无法在web上收到任何关于此的信息:(
提前非常感谢
你好,克里斯托弗这是对我有效的解决方案- 我不得不调查反应,并尝试一些方法,但最终解决了它:)
尝试查看
response.responseCode
在你的onCompleted
方法中的值。你能在那里看到200吗?嗨,普拉蒂克,谢谢你的回答。是的-代码是200,同时,我解决了这个问题:)我想发布我的解决方案,但我还不能回答我自己的问题:(很好,你解决了你的问题。我认为你只得到了作为对象的响应,所以不需要像下面这样转换字符串response.toString()
。这就是我想用response.responseCode
。处理响应的正确顺序是:GraphObject go=response.getGraphObject();JSONObject jso=go.getInnerJSONObject();JSONArray arr=jso.getJSONArray(“数据”);我将在六小时后发布一个可接受的方法-抱歉,但我的声誉仍然太低:)无论如何,感谢Christopherth的好代码。感谢分享。
GraphObject go = response.getGraphObject();
/************************************************************************
* Parses the user data from the facebook FQL
*
* "SELECT uid, name, pic_square FROM user WHERE uid IN ( SELECT uid2 FROM friend WHERE uid1 = me() )"
*
* This is the example query from
* {@link http://developers.facebook.com/docs/howtos/androidsdk/3.0/run-fql-queries/}
*
* @param response The facebook response from the FQL
************************************************************************/
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 id = json_obj.getString( "uid" );
String name = json_obj.getString( "name" );
String urlImg = json_obj.getString( "pic_square" );
//...
}
}
catch ( Throwable t )
{
t.printStackTrace();
}
}
JSONObject jso = response.getJSONObject();
JSONArray arr = jso.getJSONArray("data");