配列である単一のプロパティを持つJSONオブジェクトを返すリクエストがあります。配列が空かどうかをどのようにテストできますか?
次のようなjQueryコードを使用します。
$.getJSON(
jsonUrl,
function(data) {
if (data.RoleOwners == [ ]) {
$('<tr><td>' + noRoleOwnersText + '</td></tr>').appendTo("#roleOwnersTable tbody");
return;
}
$.each(data.RoleOwners, function(i, roleOwner) {
var tblRow =
"<tr>"
+ "<td>" + roleOwner.FirstName + "</td>"
+ "<td>" + roleOwner.LastName + "</td>"
+ "</tr>"
$(tblRow).appendTo("#roleOwnersTable tbody");
});
if(data.RoleOwners == [])の代わりに何を配置して、RoleOwnersが空の配列かどうかをテストできますか?
ありがとう、マット
(data.RoleOwners.length === 0)
jQuery.isEmptyObject(data.RoleOwners)
も実行できます
以下のコードは完全に機能し、独自のコードを記述する必要はありません。
// anyObjectIncludingJSON i tried for JSON object.
if(jQuery.isEmptyObject(anyObjectIncludingJSON))
{
return;
}
これをチェックして
JSON.parse(data).length > 0
配列(オブジェクトでもある)には、長さゼロのテストでは取得されない非数値のプロパティを含めることができます。空のオブジェクトのテストと同じように、プロパティを反復処理する必要があります。プロパティがない場合、配列は空です。
function isEmptyObject(obj) {
// This works for arrays too.
for(var name in obj) {
return false
}
return true
}