Javascript在控制台上获取未定义的数据,而它不应该

Javascript在控制台上获取未定义的数据,而它不应该,javascript,Javascript,我有以下数据: { "id":"01", "new":0, "closed":0, "locked":0, "subhere":[ { "id":"123", "subname":"somename" } ……等等 在控制台日志中,我将显示以下内容,请参阅注释: console.log('Level 1 ID: ' + obj.id); //This works! console.log('Level 1

我有以下数据:

{
   "id":"01",
   "new":0,
   "closed":0,
   "locked":0,
   "subhere":[
      {
         "id":"123",
         "subname":"somename"
      }
……等等

在控制台日志中,我将显示以下内容,请参阅注释:

console.log('Level 1 ID: ' + obj.id); //This works!
console.log('Level 1 Closed ' + obj.closed); //This works!
console.log('Level 1 Locked ' + obj.locked); //This works!
console.log('Level 2 Subhere ID ' + obj.subhere.id); //This returns Undefined!
最后一个console.log给了我未定义的消息,但我不知道问题是什么…为什么

你知道我为什么在最后一个问题上没有定义吗?

这里有一个数组,你把它当作一个对象来引用

因此,它应该是:

console.log(obj.subhere[0].id); 
由于obj.subhere是一个数组,因此obj.subhere.id将是未定义的。您需要首先获取数组元素,它是对象

console.log('Level 2 Subhere ID ' + obj.subhere[0].id)
//---------------------------------------------^^^----
var obj={ id:01, 新:0,, 截止时间:0, 锁定:0, 分处:[{ id:123, 子名称:somename }] }; console.log'Level 2 Subhere ID'+obj.Subhere[0]。ID您应该使用此

 console.log('Level 2 Subhere ID ' + obj.subhere[0].id);