真的希望有人可以帮助我,这让我生气了...
我有一个JSON对象,源代码为:
[{"description":"General Accessories & Parts","id":"1"},{"description":"General Parts","id":"2"},{"description":"Parts","id":"3"}]
这是从PHP返回的数组,它看起来像这样:
$array[0]['description']="General Accessories & Parts";
$array[0]['id']="1";
$array[1]['description']="General Parts";
$array[1]['id']="2";
etc...
所以,我将数组放入我的JavaScript代码中:
obj=eval(ajax.responseText);
现在我需要遍历数组中每个元素的描述和id,我试过这个:
for(var key in obj){
if(!obj[key].hasOwnProperty(key)) continue;
alert(obj[key]['description']);
}
我尝试的上述代码只是echos [object Object],[object Object],[object Object]
,这是我知道的3个对象。
答案 0 :(得分:0)
答案 1 :(得分:0)
奇怪的代码:if(!obj [key] .hasOwnProperty(key))
在您的情况下,键变量将迭代值0,1,2
你会要求obj [0] .hasOwnProperty(0)
答案 2 :(得分:0)
我无法真正复制你的答案,但我很确定问题是a)在你的回复文本中(我们是否有机会得到确切输出的警告?)或b)在你的for循环中(你在迭代一个数组,所以不应该拥有自己的属性):
var a = [{"description":"General Accessories & Parts","id":"1"},
{"description":"General Parts","id":"2"},
{"description":"Parts","id":"3"}];
var b = JSON.stringify(a);
eval("var c = " + b);
for (var i = 0; i < c.length; i++) {
alert(c[i].description); // alert the three values you want
}