Na een AJAX verzoek, kan mijn applicatie soms een leeg object teruggeven, zoals:
var a = {};
Hoe kan ik controleren of dat'het geval is?
Er is geen gemakkelijke manier om dit te doen. Je zult expliciet over de eigenschappen moeten lopen:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Als ECMAScript 5 ondersteuning beschikbaar is, kun je in plaats daarvan Object.keys()
gebruiken:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Bijvoorbeeld:
var a = {empty:true};
Dan kun je het gemakkelijk controleren in je AJAX callback code.
Een andere manier om het te controleren:
if (a.toSource() === "({})") // dan 'a' is leeg
EDIT: Als je een JSON bibliotheek gebruikt (bijv. JSON.js) dan kun je de JSON.encode() functie proberen en het resultaat testen tegen een lege waarde string.