Javascript 从json访问属性时未定义

Javascript 从json访问属性时未定义,javascript,json,node.js,Javascript,Json,Node.js,我有一个非常简单的JSON,但是下面的代码并没有从中映射所需的数组 已将json转换为数组,但我无法获取名称。请帮助我 var info = [{"userDetails":[{"name":"Test","id":50,"gender":"m"}],"extraDetails":[{"errorMessage":null}],"moreInfo":{"totalDiscount":"0.0"},"errorCode":0}]; info.map(function(entry){ con

我有一个非常简单的JSON,但是下面的代码并没有从中映射所需的数组

已将json转换为数组,但我无法获取名称。请帮助我

var info = [{"userDetails":[{"name":"Test","id":50,"gender":"m"}],"extraDetails":[{"errorMessage":null}],"moreInfo":{"totalDiscount":"0.0"},"errorCode":0}];


info.map(function(entry){
  console.log(entry);  //this gives above json 
      var userDetails = "userDetails";
        console.log('userDetails', entry.userDetails);  //says undefined
 });   
我需要访问info.userDetails.name我怎么做

我不确定我到底哪里出错了。

info
不是一个数组,不能在上面使用map

此外,如果
map
正确应用于
Object.keys(info)
entry.userDetails
将始终是
未定义的,因为
entry
在一次迭代中是
userDetails

也许你想要的是
info.map
,然后是
userDetails.map
更新(由于问题的更新)


如何获取用户名称?尝试在
对象上使用
Array
方法
Map()
-需要了解您为什么使用
Map()
的信息您是否真的有JSON作为字符串,还是有javascript数组和对象,这有区别?无论如何,对我来说是有效的->entry.userDetails.Map(函数(e){console.log(e.name)}#Test
info
在我看来很像一个数组?你编辑了你的原始帖子,不是吗?我也根据你的误解更新了我的帖子。对不起,你不是OP,但是OP已经更新了他的答案,首先
info
是一个对象,你可以在历史中查看它。
info.map(function (pieceOfInfo) {
    pieceOfInfo.userDetails.map(function (user) {
        console.log(user.name);
    });
});