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