私はJquery AJAX POSTメソッドを持っています。これはasp.netのWebメソッドを呼び出します。ajax メソッドは json データを取得します。データ形式は次のとおりです。
[
{
"Title": "Test2",
"Name" : "AMIT",
"IsRoot": "True"
},
{
"Title": "Test3",
"Name" : "AMIT1",
"IsRoot": "False"
},
{
"Title": "Test4",
"Name" : "AMIT2",
"IsRoot": "True"
}
]
「 http://jsonlint.com/ 」サイトでデータ形式を検証したところ、データ形式が正しいことがわかりました。データをループして各属性にアクセスしたいのですが、それを取得できません。私は3であるはずの配列の合計長を見つけようとします.しかし、それは私に9(各属性を意味します)を与えています
alert(data.d.length); // giving 9 (should give 3)
var jsondata = data.d;
alert(jsondata[1].Title); //undefined (should give Test3)
alert(jsondata[2].Title); //undefined (should give Test4)
alert(jsondata[1].Name); //undreined (should give AMIT1)
var key, count = 0;
for (key in data.d) {
if (data.d.hasOwnProperty(key)) {
count++;
}
}
alert(count); // giving 9 (should give 3)
どんな助けも大歓迎です。
私のajax呼び出し方法は
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebForm1.aspx/GetRootData",
dataType: "json",
success: function (data, textStatus) {
var jsondata = data.d;
alert(jsondata[1].Title);
alert(jsondata[2].Title);
alert(jsondata[1].MimeType);
var key, count = 0;
for (key in data.d) {
if (data.d.hasOwnProperty(key)) {
count++;
}
}
alert(count);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
なぜデバッガーも機能しないのかわかりません.. :(