0
我正在使用Facebook的Graph API,我试图让表面层的JSON对象更深。我怎样才能正确地做到这一点?Android从Facebook获取深层JSON对象GraphRequest
JSON对象看起来是这样的:
{
"id": "#############",
"name": "Page Name",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/hprofile-xap1/v/t1.0-1/p50x50/76818_139533536097297_144033_n.jpg?oh=9caa264df8b15feb6ecdjeajks9d43ee05bc22&oe=5750EE78"
}
}
}
(网址是不是在这个例子中一个真正的URL)
我已经试过这样:
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
facebook_name.setText("Logged in as " + object.optString("name"));
try {
JSONArray pictureArray = object.getJSONArray("picture");
for (int i = 0; i < pictureArray.length(); i++) {
JSONObject picture = pictureArray.getJSONObject(i);
JSONArray pictureDataArray = picture.getJSONArray("data");
for (int j = 0; j < pictureDataArray.length(); j++) {
JSONObject pictureData = pictureDataArray.getJSONObject(j);
String pictureDataURL = pictureData.optString("url");
Log.d("*******************", pictureDataURL);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
但我米没有得到我的Log.d
回来。我是否错误地遍历了这个?有没有更简单的方法来做到这一点?
这是更好地使用GSON或改造转换JSON响应转换成Java类。 – yueyueqi
@yueyueqi,请你解释一下为什么会更好?这是我找到的最简单的方法。但我想知道为什么会更好。谢谢 – ntgCleaner
因为它会为你做JSON解析,比如处理那些JSONArray/JSONObjects。你需要做的是定义Java类并关注逻辑。 – yueyueqi