Jquery 为什么我必须先JSON.stringify,然后才能解析来自Google+;应用程序编程接口?
我刚开始玩google+API,并浏览了文档。这似乎很直截了当。根据谷歌的说法,对其API的调用会返回json。那么为什么我必须在解析json之前对json进行字符串化,然后才能调用jQuery中的键值呢?下面是我正在使用的代码示例:Jquery 为什么我必须先JSON.stringify,然后才能解析来自Google+;应用程序编程接口?,jquery,json,api,google-plus,Jquery,Json,Api,Google Plus,我刚开始玩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: {
$.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);
}
});
$.ajax({
url:“https://www.googleapis.com/plus/v1/people/{user number}/activities/public?key={my api key}”,
数据:{
“最大结果”:20,
“动词”:“post”
},
数据类型:“json”,
键入:“获取”,
成功:功能(数据){
var num_实际_posts=0;
data=$.parseJSON(JSON.stringify(data));
var列表元素=$('ul#googleFeedUL li');
对于(变量i=0;i5){
打破
}
}
}
},
错误:函数(e){
警报(e);
}
});
注意:我必须调用20个帖子,因为当出于某种原因请求“post”动词时,用户所做的“共享”也会被返回。然后在返回的json中查找实际的帖子,以便只显示真实的帖子。文档似乎也没有告诉你如何通过解释json对象层次结构来提取数据,所以我只能通过控制台来跟踪它data.items[i].object.content'是google+post的内容。您的AJAX调用已经指定了
数据类型:“json”
,因此jQuery已经将返回的json解析为JavaScript对象
你应该可以放弃
data = $.parseJSON(JSON.stringify(data));
总之,
数据
已经是您想要的对象。是的,这看起来很奇怪!我想你不应该这么做。如果你注释掉那一行会发生什么:data=$.parseJSON(JSON.stringify(data))代码>?