J'ai une demande qui retourne un objet JSON avec une propriété unique qui est un tableau. Comment puis-je tester si le tableau est vide?
Avec un code jQuery comme:
$.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");
});
que puis-je mettre à la place de if (data.RoleOwners == []) pour tester si le RoleOwners est un tableau vide?
Merci, Matt
(data.RoleOwners.length === 0)
Vous pouvez aussi faire jQuery.isEmptyObject(data.RoleOwners)
le code ci-dessous fonctionne parfaitement sans avoir besoin d'écrire l'un des vôtres.
// anyObjectIncludingJSON i tried for JSON object.
if(jQuery.isEmptyObject(anyObjectIncludingJSON))
{
return;
}
Vérifie ça
JSON.parse(data).length > 0
Un tableau (étant également un objet) peut avoir des propriétés non numériques qui ne sont pas détectées par le test de longueur nulle. Vous devez parcourir les propriétés comme si vous recherchiez un objet vide. S'il n'y a pas de propriété, le tableau est vide.
function isEmptyObject(obj) {
// This works for arrays too.
for(var name in obj) {
return false
}
return true
}