如何从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注释。     

要回复问题请先登录注册