2011-05-26 60 views
1

我知道这个问题可能显得过于本地化,但我似乎无法得到这个工作。使用jQuery解析JSON。每个方法不起作用

这里是JSON我的方法的返回值:

{ "dateTime" : "5/26/2011", 
    "requestTime" : 0.1020102, 
    "users" : [ { "Email" : "[email protected]", 
     "Location" : "home", 
     "Name" : "Joe M", 
     "UserId" : "42a7eae4-d4fe-49a3-93df-cd0cf219ac95" 
     }, 
     { "Email" : "[email protected]", 
     "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对象,如果我做了一个警报(数据),所以我知道它正在返回一些东西。

显然我在这里做错了什么,所以任何帮助将不胜感激。

谢谢!

+0

哪种方法,你打电话来想数据?您可能需要手动将数据转换为对象。 – R0MANARMY 2011-05-26 21:14:39

+0

只是一个REST风格的方法在asp.net mvc – 2011-05-26 21:15:44

+0

我的意思是你使用哪种jquery方法来进行调用? – R0MANARMY 2011-05-26 21:16:43

回答

1

警报(data.users)显示你不确定? 尝试增加数据类型:“文本”,然后执行警报(数据),并检查你得到正确的JSON:/

这是为我工作:

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

必须是别的,因为我做了一个警报(data.users)时不确定。 – 2011-05-26 21:39:39

+0

将dataType设置为'text'后,对数据(而不是data.users)执行alert(),以便可以看到完整的结果。 – ezakto 2011-05-26 21:47:18

1

您也可以尝试做这样的事情:

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