如何解决如何从FB.api返回的对象中读取属性数据?
| 我有以下代码实现,可以在用户发表评论时捕获事件。它可以正确触发,但是问题是我不知道如何解析传递给我的回调函数的对象。<script>
window.fbAsyncInit = function () {
FB.init({ appId: \'<myAppId>\',status: true,cookie: true,xfbml: true });
FB.Event.subscribe(\'comment.create\',function () {
FB.api(\'/comments/?ids=http://foo.com\',function (response) {
console.log(response);
});
});
};
(function () {
var e = document.createElement(\'script\'); e.async = true;
e.src = document.location.protocol + \'//connect.facebook.net/en_US/all.js\';
document.getElementById(\'fb-root\').appendChild(e);
} ());
</script>
查看firebug中的控制台日志,ѭ1显示此对象:
{
\"http://foo.com\": {
\"data\": [
{
\"id\": \"10150090820621770_15631060\",\"from\": {
\"name\": \"Test User\",\"id\": \"1234455\"
},\"message\": \"testing\",\"created_time\": \"2011-04-18T01:55:38+0000\"
},{
\"id\": \"10150090820621770_15631066\",\"from\": {
\"name\": \"Test UserToo\",\"id\": \"1149043581\"
},\"message\": \"testing2\",\"created_time\": \"2011-04-18T01:56:12+0000\"
}
]
}
}
但是,如果尝试使用response.data[0].from.name
访问对象,则会返回undefined
。此外,以下所有内容还返回“ 4”:
response.data
response.data.length
response.data[0]
我不知道如何解析对象以读取属性。有人有提示吗?
解决方法
您忘记了您的\“ http://foo.com \” ..
所以应该是
response[\"http://foo.com\"].data[0].id
或response[\"http://foo.com\"].data[0].from.name
, 我认为回应是文字。您需要让编译器将文本解析为javascript对象。由于文本格式为JSON,因此非常简单。在支持JSON的浏览器上(维基百科页面上显示:ff 3.5 +,IE8 +,opera 10.5+,基于Webkit的东西),您可以执行以下操作:
var responseObject = JSON.parse(response);
那应该给你想要的对象。
, 我已使用FQL访问FB注释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。