Facebook对JSON对象的回应

时间:2014-06-10 20:12:20

标签: android json facebook-graph-api

我需要将我的Facebook响应转换为JSON对象,或者在我的代码中找到另一种方法来使用响应。

我已经成功打印了我的facebook api使用这个回复日志:

Log.d("Friend Response in DIB: ", FriendResponse.toString());

这给了我这个:

06-09 14:02:33.706: D/Friend Response in DIB:(12421): {Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"id":"1402927803328937","name":"Open Graph Test User"},{"id":"1402874766667901","name":"Jane Dickson"}],"paging":{"next":"https:\/\/graph.facebook.com\/v2.0\/277976949048048\/friends?format=json&access_token=CAAKsYnmrEh0BAGhTzCUOr6r3zMH7tt1mouEXrqsAi2fh1nYK1d1w5iSvBQEjCupMB1SA9f8G9GyAm41Bct0qwnXnHr4H81eHRHQaoEUrm9JhqRk2LNN260mZCNJwiuiqxX24zHrBINqZCcyh9VzsCM7PO2UKGfEJOcxmEhAZCl9v8XrcrBIkaeGNRC7zh7hZASZADRMTACaRUZApjkjyAuFxSWflkqMldfISgz4Lvi2gZDZD&limit=5000&offset=5000&__after_id=enc_Aey9afbBKXSo8gtNoFOb5eEu4paCRUYRSWIG0v3nSeCgpCIWIj7O-gHnmemCVpr7hQgH--aTwM6-lZA6MyqEfF6H"}}}, error: null, isFromCache:false}

此信息是正确的,现在我需要将每个返回用户的 id 名称放入列表视图中自己的列表项。

我有一个代码可以执行此操作,但它使用makeHttpRequest从URL获取信息。

如何将我的Facebook响应类型转换为可以使用此代码而不是makeHttpRequest的类型? :

        // getting JSON string from URL
        JSONObject json = jParser.makeHttpRequest(url_all_videos, "POST", params);

        // Check your log cat for JSON reponse
        Log.d("All Products: ", json.toString());

        Log.d("Friend Response in DIB: ", FriendResponse.toString());


        try {
            // Checking for SUCCESS TAG
            int success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // products found
                // Getting Array of Products
                products = json.getJSONArray(TAG_PRODUCTS);

                    // looping through All Products
                    for (int i = 0; i < products.length(); i++) {
                        JSONObject c = products.getJSONObject(i);

                    // Storing each json item in variable
                    String id = c.getString(TAG_ID);
                    String name = c.getString(TAG_NAME);

等...

所有人都非常感谢!

1 个答案:

答案 0 :(得分:1)

查看官方Facebook文档here

如果您执行异步(Request.executeAsync())请求,则会使用Request.Callback方法onCompleted(Response response)。如果您按顺序执行请求(请确保您不在主线程上),Response将是Request.executeAndWait()方法返回的值。

Response对象,您可以致电response.getGraphObject().getInnerJsonObject()。使用Graph Explorer工具可以更好地了解从API调用中获得的JSON的结构。