var text = '{ "nusers" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"sadsf" , "lastName":"sdasda" },' +
'{ "firstName":"fnSaleh" , "lastName":"lnSaleh" }]}';
var va = "nuser";
obj = JSON.parse(text);
for(i=0;i< (obj.va.length);i++){
var st = obj.va.firstName;
console.log(st);
}
错误
“未捕获的TypeError:无法读取未定义的属性'length'”
答案 0 :(得分:3)
您有几个问题。
对于初学者,对于变量属性名称,请使用[]
表示法。然后固定va
的值以匹配对象属性nusers
而不是nuser
的对象。最后,使用索引i
访问循环中的数组元素
var text = '{ "nusers" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"sadsf" , "lastName":"sdasda" },' +
'{ "firstName":"fnSaleh" , "lastName":"lnSaleh" }]}';
var va = "nusers";
obj = JSON.parse(text);
for (i = 0; i < (obj[va].length); i++) {
var st = obj[va][i].firstName;
console.log(st);
}
答案 1 :(得分:1)
使用变量访问对象属性时,请使用方括号。另外,您还需要获取index
,以便obj[va][i].firstName
会给出名字
var text = '{ "nusers" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"sadsf" , "lastName":"sdasda" },' +
'{ "firstName":"fnSaleh" , "lastName":"lnSaleh" }]}';
var va = "nusers";
var obj = JSON.parse(text);
for (var i = 0; i < (obj[va].length); i++) {
var st = obj[va][i].firstName;
console.log(st);
}
答案 2 :(得分:1)
首先,在顶部声明所有变量。
然后使用右键('nusers'
以s
结尾)访问对象。
要访问对象,您需要一个property accessor,此处带有括号表示法,因为您有一个变量。这对于访问带有索引的数组也是必要的。
var text = '{ "nusers" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"sadsf" , "lastName":"sdasda" },' +
'{ "firstName":"fnSaleh" , "lastName":"lnSaleh" }]}',
va = "nusers",
obj = JSON.parse(text),
i,
st;
for (i = 0; i < obj[va].length; i++) {
st = obj[va][i].firstName;
console.log(st);
}
答案 3 :(得分:1)
基本上,您的代码中有几个问题。
nusers
[]
表示法访问属性。
var text = '{ "nusers" : [' +'{ "firstName":"John" , "lastName":"Doe" },' +'{ "firstName":"Anna" , "lastName":"Smith" },' +'{ "firstName":"sadsf" , "lastName":"sdasda" },' +'{ "firstName":"fnSaleh" , "lastName":"lnSaleh" }]}';
var va = "nusers";
var obj = JSON.parse(text);
for(i=0; i< obj[va].length; i++){
var st = obj[va][i].firstName;
console.log(st);
}