我知道有些人提出同样的问题并得到答复。我已经看了所有这些,但我无法解决我的问题。我有一个jquery snipet,它将值发送给处理程序,处理程序处理来自JS的值并将数据作为JSON数据返回。 JSON数据有两组记录(来自数据库的两行),需要通过getJSON捕获并处理它。 JSON数据看起来像
[{"Name":"P1","Description":"pd1",Value":"S1Test1"},{"Name":"P1","Description":"pd1","Value":"L1Test1"}]
我的JS是
$(document).ready(function () {
$.getJSON('ProfileHandler.ashx', { 'ProfileName': 'P1' }, function (data) {
alert(data.Name);
});
});
我的处理程序代码是
string ProfileName = context.Request["ProfileName"];
GetProfileDataService GetProfileDataService = new BokingEngine.MasterDataService.GetProfileDataService();
IEnumerable<ProfileData> ProfileDetails = GetProfileDataService.GetList(new ProfileSearchCriteria { Name = ProfileName });
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string serProfileDetails = javaScriptSerializer.Serialize(ProfileDetails);
context.Response.ContentType = "text/json";
context.Response.Write(serProfileDetails);
这里的接近错误是什么?
答案 0 :(得分:7)
data
是一个对象数组
data[0].name
应该足以获取名字。
要遍历整个数组,您可以执行以下操作:
$.each(data, function(k, v){
alert(v.name);
});
其中v
是数组中的当前对象。请注意v == this
答案 1 :(得分:1)
您的JSON定义了一个数组,它将对象作为条目。而不是
alert(data.Name);
你想要
alert(data[0].Name);
(当然,还有其他索引,在您的示例中,您有0
和1
)。
(引用的JSON在第一个"
之前也无效[缺失Value
],但我猜这是问题中的拼写错误。)