1

我知道有些人问了同样的问题并得到了回答。我已经查看了所有这些,但我仍然无法解决我的问题。我有一个 jquery 片段,它将值发送到处理程序,处理程序处理来自 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);

这里的方法错误是什么?

4

2 回答 2

7

data是一个对象数组

data[0].name

应该足以获取名字。

要遍历整个数组,您可以执行以下操作:

$.each(data, function(k, v){
    alert(v.name);
});

v数组中的当前对象在哪里。注意v == this

于 2013-03-07T08:04:59.163 回答
1

您的 JSON 定义了一个数组,其中包含对象作为条目。所以而不是

alert(data.Name);

你想要

alert(data[0].Name);

(当然还有其他索引,在你的例子中你有0and 1)。

(引用的 JSON 也是无效的["在第一个之前丢失Value],但我猜这是问题中的错字。)

于 2013-03-07T08:04:39.643 回答