Json解析嵌套数组

时间:2014-12-05 06:08:04

标签: javascript json jsonobject

我一直在参考这篇文章Access / process (nested) objects, arrays or JSON,因为没有把握这个问题:

我有一个来自http请求的JSON:在我的应用程序中,我需要询问Posts对象。

    { 
      "email" : "test@email.com", 
      "username" : "rambo",
      "fullname" : "Michael Stalone",
      "posts" : [
                 { "username" : "Bad Man",  
                   "comments" : 
                      [ 
                         { "com_user" : "michael", "com_post" : "good stuff" },
                         { "com_user" : "alex", "com_post" : "hell yes" }  
                      ]  
                  }, 
                  { "username" : "CheckerTats", 
                    "comments" : [ 
                          { "com_user" : "basky", "com_post" : "wow awesome" } 
                      ] 
                  }
                ]
      }

我很好,看到应有的一切。我还注意到它返回和数组对象所以我索引varriable我将它分配给:var items = data [0]。 console.log(data [0])显示了这个:

{
 "email":"test@email.com",
 "username":"rambo",
  "fullname":"Michael Stalone",
  "posts":["[object Object]","[object Object]"]
}

所以这一切都很好,花花公子,并意识到我需要更进一步,调查数据[0] ['posts'] [0],显示为:

[object Object]

我现在几乎可以肯定这是第一个帖子对象。我认为data [0] ['posts'] [0] ['username']会给我那个特定的用户名。更糟糕的是我的开发环境是一个iOS Apache Cordova应用程序,所以当我运行console.log时,我什么也没有返回。我已经将它分配给变量,使用stringify,点符号,我仍然无法访问它宾语。我需要这样做,将它分配给角度范围变量。

修改

新日志现在返回undefined:

 var items = dat[0]['posts'][0];
 console.log(items['username']); // undefined

2 个答案:

答案 0 :(得分:3)

仔细查看数据[0]:posts包含两个字符串的数组,表示" [object Object]"而不是两个对象。你是如何解析json的?

哦,你的语法对于从嵌套对象中提取用户名是正确的

答案 1 :(得分:0)

如果变量dat保存您的json对象。然后你可以尝试下面的代码来访问你的json中的用户名:

dat.posts[0].username