从API响应遍历嵌套的Javascript对象

从API响应遍历嵌套的Javascript对象,javascript,arrays,object,javascript-objects,facebook-sdk-4.0,Javascript,Arrays,Object,Javascript Objects,Facebook Sdk 4.0,我尝试了100种不同的方法,花了几天的时间浏览Google和Stackoverflow,但我找不到解决这个问题的方法。在这个API响应主体之后调用的所有内容都返回未定义 Facebook SDK的响应如下所示: [ { "body": "[ "data": [ { "name": "Larry Syid Wright", "admi

我尝试了100种不同的方法,花了几天的时间浏览Google和Stackoverflow,但我找不到解决这个问题的方法。在这个API响应主体之后调用的所有内容都返回未定义

Facebook SDK的响应如下所示:

[
    {
        "body": "[   
            "data": [
                {
                    "name": "Larry Syid Wright",
                    "administrator": false,
                    "id": "xxx"
                },      {         
                    "name": "Melissa Long Jackson",
                    "administrator": false,
                    "id": "xxx"
                },      {       
                    "name": "Charlotte Masson",
                    "administrator": false,
                    "id": "xxx"  
                }  
            ],   
            "paging": {      
                "next": "url"
            }
        ]"
    },{
        "body": "{   
            "data": [      
                {         
                    "id": "xxx_xxx",       
                    "message": "In honor of Halloween, how many of you have your own ghost stories?  Who believes in ghosts and who doesn't?",                 
                    "type": "status",         
                    "created_time": "2014-10-31T20:02:01+0000",         
                    "updated_time": "2014-11-01T02:52:51+0000",         
                    "likes": {            
                        "data": [               
                            {                  
                                "id": "xxx",                  
                                "name": "Joe HerBatman Owenby Jr." 
                            }          
                        ],            
                    }
                    "paging": {               
                        "cursors": 
                            {                  
                                "after": "xxx",                  
                                "before": "xxx"               
                            }            
                        }         
                    }
                },{         
                    "id": "xxx_xxx",         
                    "from": {            
                        "id": "xxx",            
                        "name": "Jessica Starling"         
                    },       
                    "message": "Watching the "Campaign" and I can't help but notice what a fantastic job they did (Will ferrell and all) with that North Carolina accent! Ya'll know we sound different than other southern states ;)",         
                    "type": "status",           
                    "created_time": "2014-11-01T02:36:21+0000",         
                    "updated_time": "2014-11-01T02:36:21+0000",         
                    "likes": {            
                        "data": [               
                            {                  
                                "id": "xxx",                  
                                "name": "Scott Williams"n               
                            }         
                        ]
                    }      
                }      
            ],   
            "paging": {      
                "previous": "xxx",      
                "next": "xxx"  
            }
        }"
    }
]
此响应来自批处理调用。如果我单独调用它们,我可以轻松地遍历响应,并从中获取所有信息。当我在批处理中调用它们时,我无法通过“body”,我需要使用批处理调用

console.log(响应[0].body)
将返回响应第一部分主体内的对象,但
console.log(响应[0].body.data)返回未定义的。我就是不明白。这应该很简单,但好像门上有锁,我没有正确的钥匙


我通常不需要迭代对象,所以我不需要一个通用的答案。我需要帮助才能看到我看不到的东西。为什么在我调用正文之后的任何内容时控制台显示undefined,以及我需要做什么来获取这些值?

JSON包含嵌套的JSON。身体就像一根绳子。使用

var body = JSON.parse(response[0].body);

正文中的值只是字符串。它们作为json嵌入。因此,首先需要使用
json.parse
解析它们

代码是这样的

var body = JSON.parse(response[0].body);

这些
body
值只是巨大的字符串——本质上是嵌入的JSON。您必须将它们单独解析为JSON,才能得到它们的内部值。谢谢!有人在你前面回答了同样的问题,所以我把这个标记为答案。我得到了我所需要的,谢谢你!很好…:)…很感谢你!我甚至不知道响应是字符串。这有什么意义呢?看看下面的文章,它将完全回答你的问题:@istos这确实解释了一些事情,而且很有意义。字符串有点有意义,考虑到响应是字符串,你有一个响应数组(想想ajax响应有responseText属性),它们的主体是字符串。这是一个结合了多个端点的调用吗@我不确定这篇文章在这里是怎么应用的,没有人调用这个对象JSON@Juan门德斯,OP发现它很有用,这篇文章完全相关,你只需要阅读整篇文章,而不仅仅是标题。