Android从Facebook GraphRequest获取深度JSON对象

Android从Facebook GraphRequest获取深度JSON对象,android,json,facebook,Android,Json,Facebook,我正在使用Facebook的Graph API,并试图获得比表面对象更深的JSON对象。我怎样才能正确地做到这一点 JSON对象如下所示: { "id": "#############", "name": "Page Name", "picture": { "data": { "is_silhouette": false, "url": "https://scontent.xx.fbcdn.net/hprof

我正在使用Facebook的Graph API,并试图获得比表面对象更深的JSON对象。我怎样才能正确地做到这一点

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不是真实的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();
            }
        }
    });
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
facebook_name.setText(“登录身份”+object.optString(“名称”);
试一试{
JSONArray picturarray=object.getJSONArray(“图片”);
对于(int i=0;i

但是我没有拿回我的
Log.d
。我是不是走错了?有更简单的方法吗?

我找到了答案。我只需要继续在
.getJSONObject()
上串线,继续往下走,找到我要找的东西:

String pictureURL = object.getJSONObject("picture").getJSONObject("data").getString("url");

最好使用GSON或改型将JSON响应转换为Java类。@yueyueqi,您能解释一下为什么会更好吗?这是我发现的最简单的方法。但我想知道为什么会更好。谢谢,因为它将为您进行JSON解析,就像处理那些JSONArray/JSONObject一样。您需要做的是定义Java类并关注逻辑。