使用jQuery .each方法解析JSON无法正常工作

时间:2011-05-26 21:10:48

标签: jquery asp.net-mvc json

我知道这个问题可能看起来过于局部化,但我似乎无法让它发挥作用。

这是我的方法返回的JSON:

{ "dateTime" : "5/26/2011",
  "requestTime" : 0.1020102,
  "users" : [ { "Email" : "joem@email.com",
        "Location" : "home",
        "Name" : "Joe M",
        "UserId" : "42a7eae4-d4fe-49a3-93df-cd0cf219ac95"
      },
      { "Email" : "test@test.net",
        "Location" : "Work",
        "Name" : "Test Name",
        "UserId" : "97a444fb-6e3d-482c-a966-dbd3e0c739c8"
      }
    ]
}

我正在使用的jQuery是这样的:

$.ajax({
type: "POST",
url: "Home/GetUsers",
data: dataString,
success: function (data) {                      
     $.each(data.users, function(i, item) {
          $("#results").append('<p>' + item.Name + '</p>');
     });
}

我要么未定义,要么没有任何反应。

如果我发出警报(数据),我会得到Object对象,所以我知道它正在返回一些内容。

显然我在这里做错了,所以非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

您也可以尝试这样做:

$.post('Home/GetUsers', dataString, function(result) {
  $(result.users).each(function(i, item){
            $('#results').append('<p>'+item.Name+'</p>');
            });
  },'json'
});

答案 1 :(得分:1)

alert(data.users)显示你未定义? 尝试添加dataType:'text',然后做警报(数据)并检查你是否得到了正确的json:/

这对我有用:

var data = { "dateTime" : "5/26/2011",
             "requestTime" : 0.1020102,
             "users" : [ { "Email" : "joem@email.com",
                "Location" : "home",
                "Name" : "Joe M",
                "UserId" : "42a7eae4-d4fe-49a3-93df-cd0cf219ac95"
              },
              { "Email" : "test@test.net",
                "Location" : "Work",
                "Name" : "Test Name",
                "UserId" : "97a444fb-6e3d-482c-a966-dbd3e0c739c8"
              }
            ]
           };
$(data.users).each(function(i, item) {
    $("#results").append('<p>' + item.Name + '</p>');
});