我定义了一个json,显示的时候怎么出现undefined呀,我看了其他网友也是这样些的啊,为什么我的不行呢?
[code="java"]
var data={"loginTomes":1,"memberPassword":"test","memberUsertype":"vip","memberId":1,"memberName":"test"};
for(var j=0;j var p=data[j];
alert(p);//出现undefined
var _class=j%2==0?"even":"odd";
_html+=''+p.memberName+''
}
[/code]
data 是json对象,而你这里需要的应该是数组,data数组(多加了一个对象)如下:
var data ==[{"loginTomes":1,"memberPassword":"test","memberUsertype":"vip","memberId":1,"memberName":"test"},{==[{"loginTomes":2,"memberPassword":"pwd","memberUsertype":"normal","memberId":2,"memberName":"yourName"}];
这样alert(p);就不会出现undefined 了
data不是数组,不用for循环,直接data.xxx
从的代码来看,data应该是一个数组才对,但是你给它传了一个JSON对象。正确的写法应该是:
[code="js"]var data=[{"loginTomes":1,"memberPassword":"test","memberUsertype":"vip","memberId":1,"memberName":"test"}];[/code]
估计你对json的理解有点误区
var data=[{"loginTomes":1,"memberPassword":"test","memberUsertype":"vip","memberId":1,"memberName":"test"}];
这个是数组
var data={"loginTomes":1,"memberPassword":"test","memberUsertype":"vip","memberId":1,"memberName":"test"};
这个相当于json对象,你可以通过eval将它转成一个数组
所以对于你生命的data,必须执行eval才能使用下面的循环
data 不是数组,可以写为
[code="java"]
for (var i in data){
alert(data[i]);
}
[/code]