Javascript 从json访问属性时未定义
我有一个非常简单的JSON,但是下面的代码并没有从中映射所需的数组 已将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
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)}#Testinfo
在我看来很像一个数组?你编辑了你的原始帖子,不是吗?我也根据你的误解更新了我的帖子。对不起,你不是OP,但是OP已经更新了他的答案,首先info
是一个对象,你可以在历史中查看它。
info.map(function (pieceOfInfo) {
pieceOfInfo.userDetails.map(function (user) {
console.log(user.name);
});
});