我想在JSON对象上获取一个键的值,但是在运行时, 这项工作在设计时就像这样。
var studentsData = [
{ "studentName": "Elen", "Birthyear": 1981 }
, { "studentName": "Stev", "Birthyear": 1987 }];
console.log(studentsData[0].studentName); // print Elen
但是如果在运行时像这样将对象推送到数组
var studentsData = [];
var jsonObj={ "studentName": "Elen", "Birthyear": 1981 }; //because i intend to get the object data at runtime
studentsData.push(jsonObj);
console.log(studentsData[0].studentName);
通过这种方式它给我错误:未捕获TypeError:无法读取属性' studentName'未定义的
请帮助,谢谢你
对不起,我把另一个代码放入了不同的数组变量, 但似乎从一开始我的真正问题是同样的解决了这个问题: - How do I assign a variable from localForage as I do in localStorage?
答案 0 :(得分:0)
您正在访问错误的变量。
改为使用studentsData
:
var studentsData = [];
var jsonObj={ "studentName": "Elen", "Birthyear": 1981 }; //because i intend to get the object data at runtime
studentsData.push(jsonObj);
console.log(studentsData[0].studentName);
答案 1 :(得分:0)
的console.log(studentsData [0] .studentName);
因为您要将json对象添加到 studentsData 数组。
答案 2 :(得分:0)
尝试阅读studentsData
而不是populationData
。
工作演示:
使用for in
循环:
var studentsData = [
{ "studentName": "Elen", "Birthyear": 1981 }
, { "studentName": "Stev", "Birthyear": 1987 }];
for (var i in studentsData) {
console.log(studentsData[i].studentName);
}

使用数组map()
函数:
var studentsData = [
{ "studentName": "Elen", "Birthyear": 1981 }
, { "studentName": "Stev", "Birthyear": 1987 }];
var result = studentsData.map(function(elem) {
return elem.studentName;
});
console.log(result);