如何在javascript中迭代并获取包含json响应的数组值

时间:2012-11-20 06:28:27

标签: javascript jquery for-loop

  

可能重复:
  I have a nested data structure / JSON, how can access a specific value?

这是我用于ajax调用的js代码

var UserArr = new Array();
    $.ajax({
                type: 'POST',
                data: postJSONData,
                url: 'PrivateSpace.asmx/GetUserDetails',
                dataType: 'json',
                async: false,
                contentType: 'application/json; charset=utf-8',
                success: function success(response) {
                debugger;
                UserArr = response.d;


                },
                error: function failure(response) {
                    alert('failed');
                }
            });

例如:UserArr将是这样的:

[0] will have userid: 101, username: jack
[1] will have userid: 102, username: jones

我尝试过这样但看起来似乎无法正常工作

for (var i = 0; i < UserArr.length; i++) {     


            User_ID = // i couldn get like UserArr.userid
            Name = // i couldn get like UserArr.username
     }

请帮帮我..

3 个答案:

答案 0 :(得分:1)

您不是UserArr.userid访问它,而是UserArr[i].userid访问它,因为您提供的有关对象外观的信息是正确的。

迭代数组的另一种方法是使用Array.forEach

,这样可以让您更少担心迭代的机制。
UserArr.forEach(function(user) {
    alert(user.userid);
});

但是,您需要为旧版浏览器使用垫片;请参阅this SO answer中的MDC回退,以获得针对某些浏览器缺陷的良好修复。

答案 1 :(得分:1)

您的数据看起来是array of objects的形式。 试试这种方式..

User_ID = UserArr[i].userid
Name = UserArr[i].username

答案 2 :(得分:1)

UserArr没有userid属性。数组的每个索引都有userid属性。

for (var i = 0; i < UserArr.length; i++) {     
    User_ID = UserArr[i].userid;
    Name = UserArr[i].username;
}