访问JSON对象中的特定值

时间:2016-04-18 00:45:02

标签: javascript json undefined

在访问此JSON对象时,我无法弄清楚我做错了什么:

{ Items: 
   [ { mId: 'who' },
     { mId: 'am' },
     { mId: 'I' } ],
  Count: 3,
  ScannedCount: 3 }
{ Items: 
   [ { cId: 'big' },
     { cId: 'scary' },
     { cId: 'muppet' } ],
  Count: 3,
  ScannedCount: 3 }

这是我从函数中获取的对象,我正在尝试访问各个项目以更新其值。

当我想打印'who'时,我这样做:

console.log(obj.Items[0].mId)

现在我希望得到'谁'回来,但这就是打印:

undefined
who

那个'未定义'总是标记着。我在这里做错了什么?

此外,如果我尝试通过执行某处更改值:

obj.Items[0].mId = 'x'

发生这种情况:

{ Items: 
   [ { mId: 'x' },
     { mId: 'am' },
     { mId: 'I' } ],
  Count: 3,
  ScannedCount: 3 }
{ Items: 
   [ { cId: 'big', mId: 'x' },
     { cId: 'scary' },
     { cId: 'muppet' } ],
  Count: 3,
  ScannedCount: 3 }

这不是我想要的......我不明白如何只访问第一个'项目'。好像我正在访问这两个。

非常感谢任何帮助或建议。我可能不需要说我不习惯使用JSON。

1 个答案:

答案 0 :(得分:0)

对于未定义的问题,请在此处查看答案:What does it mean if console.log(4) outputs undefined in Chrome Console?但TL; DR您只是看到未定义的'从console.log()返回,因为它没有返回值。一旦你不在控制台中工作,它就不应该成为一个问题。

至于你有两个叫做obj的独立对象,我不明白,正如其他人在评论中所说,请发布完整的代码,以便我们可以看到如何使用/生成它。

另外,为了澄清它,您似乎正在使用JavaScript对象,而不是JSON,类似但不一样。