jQueryを使ってJSONレコードの総数を取得する方法は見つかりませんでした。
以下が返されたJSONです:
quot;Email":"Emailを入力してください.","Password":"パスワードを入力してください."}`。
これが私のコードです:
$(function() {
$("#btnSubmit").click(function() {
$.ajax({
url: "/account/signup",
type: "POST",
dataType: "json",
data: {
Email: $("#strEmail").val(),
Password: $("#strPassword").val()
},
success: function(j) {
$(".errMsg").hide();
alert(j.length); // I couldn't get the total count
$.each(j, function(n) {
$("#err" + n).html(j[n]);
$("#err" + n).show();
})
},
error: function(req, status, error) {
alert(req);
}
});
});
});
OPは、JSONオブジェクトのプロパティの数をカウントしようとしています。 これは、反復の増分された温度変数で実行できますが、反復が始まる前にカウントを知りたいようです。 [このページ][1]の下部に、ニーズを満たすシンプルな機能があります。
これがコードのカットアンドペーストです。
function countProperties(obj) {
var prop;
var propCount = 0;
for (prop in obj) {
propCount++;
}
return propCount;
}
これはJSONオブジェクトでうまく機能するはずです。 プロトタイプチェーンからプロパティを導出する可能性のある他のオブジェクトについては、hasOwnProperty()テストを追加する必要があります。
[1]:http://www.webdeveloper.com/forum/showthread.php?t = 168120。
この場合、なぜ長さが必要なのか?
もし長さをチェックしたいのであれば、サーバーが以下のようなキーと値のペアを持つJSON配列を返すようにします:
[
{key:value},
{key:value}
]
JSONでは、[ and ]は配列(lengthプロパティを持つ)を表し、{ and }はオブジェクト(lengthプロパティを持たない)を表します。オブジェクトのメンバを繰り返し処理することはできますが、関数も取得することになるので、メンバの長さをチェックすることは、繰り返し処理以外には役に立ちません。
あなたが探しているのはです。
j.d.length
d が鍵です。 少なくとも私の場合は、.NET Webサービスを使用しています。
$.ajax({
type: "POST",
url: "CantTellU.asmx",
data: "{'userID' : " + parseInt($.query.get('ID')) + " }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg, status) {
ApplyTemplate(msg);
alert(msg.d.length);
}
});