解析时的额外值,然后循环遍历JSON字符串

时间:2010-12-07 18:50:27

标签: javascript json

所以,我有一个JSON字符串,我打算解析它,并提醒内容,就像这样。

var json_string = '[1,2,3,4,5]';
var parsed_string = JSON.parse(json_string);
for(x in parsed_string) alert(x)

但是,我不仅获得了五个元素,而且还得到了一大堆额外的问题,我没有要求... $ constructor,$ family,append,associate等...

有没有什么办法可以在没有达到这些额外值的情况下迭代这个数组?

编辑:对于那些想知道的人 - 我后来意识到parsed_string.length返回正确的数组长度供我迭代。

2 个答案:

答案 0 :(得分:2)

for in遍历所有可枚举对象属性;对于Javascript中的数组,它是所有元素,以及您添加到数组实例或原型链中任何对象的所有方法/属性。

这是使用for ;;;循环遍历数组的唯一原因。

var json_string = '[1,2,3,4,5]';
var parsed_string = JSON.parse(json_string);
for(var i=0;i<parsed_string.length;i++) alert(parsed_string[i]);

答案 1 :(得分:2)

你应该像这样循环一个JavaScript对象:

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        alert(obj[key]);
    }
}

.hasOWnProperty()确保key指定的属性不会被继承。但是,你在这里处理一个数组:

for (var i = 0; i < arr.length; i++) {
    alert(arr[i]);
}