在运行时问题将JSON对象添加到JSON数组

时间:2016-11-10 03:15:07

标签: javascript arrays json local-storage

我想在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?

3 个答案:

答案 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);