我很擅长使用JSON,并努力掌握从对象检索数据并打印到HTML。基本的要求是我从facebook检索url共享计数,这显然是它的公共数据,我不需要乱用访问令牌。
到目前为止我的脚本
$.ajax(
{
url: 'http://graph.facebook.com/?ids=http://google.co.uk',
success: function(json)
{
console.log(json);
}
});
返回以下内容作为控制台中的对象。
[object Object] {
http://google.co.uk: [object Object] {
comments: 5,
id: "http://google.co.uk",
shares: 321364
}
}
所以我可以看到'股票'数据在那里,但我如何访问它并打印成div?我已经尝试将它附加到'sharecount'div这样的
jQuery(response_container).append('<div id="sharecount">Shares: ' + shares + '</div>');
但我只是在黑暗中摸索,可以使用一些指导。大多数指南似乎都已过时,建议使用旧的FQL方法。
如果有人想怜惜我,我在这里有一个JSBIN!
http://jsbin.com/qinutanotu/edit?html,console,output
感谢
更新
我现在把它改成了这个有用的
<script>
$.ajax(
{
url: 'http://graph.facebook.com/?ids=http://google.co.uk',
success: function(json)
{
var urlshares = (json['http://google.co.uk'].shares)
$("#sharecount").append(urlshares);
}
});
</script>
<div id="sharecount"></div>
更新#2
graph.facebook.com似乎有时不会返回“股票”,这可能与该网址没有共享有关。而不是返回'0'它根本不返回任何东西。为了解决这个问题,我已经用html替换了append并给了div一个默认值0,如果url有一个共享计数被传回,它将被替换
<script>
$.ajax(
{
url: 'http://graph.facebook.com/?ids=http://google.co.uk',
success: function(json)
{
var urlshares = (json['http://google.co.uk'].shares)
$("#sharecount").html(urlshares);
}
});
</script>
<div id="sharecount">0</div>
答案 0 :(得分:0)
Facebook在此处使用URL作为关键字,因此您首先需要json['http://google.co.uk']
来访问内部对象,然后json['http://google.co.uk'].shares
来访问共享值。
(http://google.co.uk
包含无法使用点表示法使用该键访问属性的字符,因此必须在此处使用['http://google.co.uk']
。)