2013-06-05 72 views
0

帮助!这一直在扰乱我的垃圾。迭代第三级JSON对象

我通过Facebook的Graph API访问数据。我如何获取应用程序名称?

{ 
    "data": [ 
      { 
      "message": "Lorem ipsum dolor site amet.", 
      "application": { 
       "name": "Instagram", 
       "namespace": "instapp", 
       "id": "000000" 
      } 
      }, 
      { 
      "message": "2 Lorem ipsum dolor site amet.", 
      "application": { 
       "name": "Instagram", 
       "namespace": "instapp", 
       "id": "000000" 
      } 
      } 
     ] 
} 

我迄今为止代码:

$.getJSON(url,function(data){      
    for(i=0; i < data.data.length; i++){ 
     var fbApp = data.data[i].application 
     var fbMessage = data.data[i].message; 
     $(".facebook").append('<p>'+ fbMessage +'</p>'); 
    }    
}); 

输出变量fbApp[object Object]undefined

data.data[i].application修改为data.data[i].application['name']给我的名字,但只有1个对象,所以循环停止。

看来我需要重新回到对象[键](例如数据[消息])以得到应用程序[名称]。我该怎么做呢?

+3

JSON代码似乎缺少一对'}' – elclanrs

+0

这是FB打开图的部分复制和粘贴...我没有花时间来验证它。 – AAA

回答

0

JSON无效。应该是:

"data": [ 
     { 
     "message": "Lorem ipsum dolor site amet.", 
     "application": { 
      "name": "Instagram", 
      "namespace": "instapp", 
      "id": "000000" 
     } 
     }, 
     { 
     "message": "2 Lorem ipsum dolor site amet.", 
     "application": { 
      "name": "Instagram", 
      "namespace": "instapp", 
      "id": "000000" 
     } 
     } 
    ] 

而且fbApp(基于VAR fbApp = data.data [I]。应用)是一个对象(应用程序),因此,如果您要访问的application.name然后你做fbApp.name

+0

好的,它是从FB打开的图形复制并粘贴的......我没有花时间验证它。 – AAA

+0

我已经完成了'data.data [i] .application.name',但它停在第一个循环。 – AAA

+0

应该工作。创建示例在这里:http://jsfiddle.net/martemas/zSHDh/我已经条纹的getJSON位,并假设数据是在上面的格式。 – maethorr