我一直在参考这篇文章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
答案 0 :(得分:3)
仔细查看数据[0]:posts包含两个字符串的数组,表示" [object Object]"而不是两个对象。你是如何解析json的?
哦,你的语法对于从嵌套对象中提取用户名是正确的
答案 1 :(得分:0)
如果变量dat
保存您的json对象。然后你可以尝试下面的代码来访问你的json中的用户名:
dat.posts[0].username