4

我刚开始使用 google+ API 并搜索了文档。这似乎很简单。据谷歌称,对其 API 的调用会返回 json。那么为什么我必须在解析 json 之前对 json 进行字符串化,然后再调用 jQuery 中的键值呢?这是我正在使用的代码示例:

$.ajax({
    url: "https://www.googleapis.com/plus/v1/people/{user number}/activities/public?key={my api key}",
    data: {
        "maxResults": 20,
        "verb": "post"
    },
    dataType: "json",
    type: "get",
    success: function (data) {
        var num_actual_posts = 0;
        data = $.parseJSON(JSON.stringify(data));
        var listElements = $('ul#googleFeedUL li');

        for (var i = 0; i < data.items.length; i++) {
            if (data.items[i].verb == "post") {
                $(listElements[num_actual_posts]).append(data.items[i].object.content);
                num_actual_posts++;
                if (num_actual_posts > 5) {
                    break;
                }
            }
        }
    },
    error: function (e) {
        alert(e);
    }
});

注意:我必须调用 20 个帖子,因为当出于某种原因请求“帖子”动词时,用户制作的“分享”也会返回。然后,我在返回的 json 中查找实际帖子,以便仅显示真实帖子。文档似乎也没有告诉你如何通过解释 json 对象层次结构来提取数据,所以我只需要通过控制台跟踪它。'data.items[i].object.content' 是 google+ 帖子的内容。

4

1 回答 1

5

您的 AJAX 调用已经指定dataType: "json",因此 jQuery 已经将返回的 JSON 解析为 JavaScript 对象。

你应该可以放下

data = $.parseJSON(JSON.stringify(data));

完全data是您想要的对象。

于 2013-05-18T16:16:10.067 回答