Après une requête AJAX, il arrive que mon application renvoie un objet vide, par exemple :
var a = {};
Comment puis-je vérifier si c’est le cas ?
Il n'y a pas de moyen simple de le faire. Vous devrez boucler sur les propriétés de manière explicite :
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Si le support ECMAScript 5 est disponible, vous pouvez utiliser Object.keys()
à la place :
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Par exemple :
var a = {empty:true} ;
Vous pouvez alors facilement le vérifier dans votre code de rappel AJAX.
Une autre façon de le vérifier :
si (a.toSource() === "({})") // alors 'a' est vide
EDIT : Si vous utilisez une bibliothèque JSON (par exemple JSON.js), vous pouvez essayer la fonction JSON.encode() et tester le résultat par rapport à une chaîne de valeur vide.