1

同じ質問をして回答を得た人がいることを私は知っています。私はすでにそれらすべてを調べましたが、それでも問題を解決できませんでした。ハンドラーに値を送信するjqueryスニペットがあり、ハンドラーはJSからの値を処理し、データをJSONデータとして返します。JSON データには 2 セットのレコード (データベースからの 2 行) があり、これらを 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 は、オブジェクトをエントリとして持つarrayを定義します。だから代わりに

alert(data.Name);

あなたが望むだろう

alert(data[0].Name);

(もちろん、他のインデックスも同様です。あなたの例では と が0あります1)。

(引用されたJSONも無効です["最初の前がありませValueん]が、質問のタイプミスだと思います。)

于 2013-03-07T08:04:39.643 に答える