Dopo una richiesta AJAX, a volte la mia applicazione può restituire un oggetto vuoto, come:
var a = {};
Come posso controllare se questo è il caso?
Non c'è un modo semplice per farlo. Dovrai fare un loop sulle proprietà in modo esplicito:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Se il supporto ECMAScript 5 è disponibile, potete usare invece Object.keys()
:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Per esempio:
var a = {empty:true};
Poi puoi facilmente controllarlo nel tuo codice di callback AJAX.
Un altro modo per controllarlo:
if (a.toSource() === "({})") // allora 'a' è vuoto
EDIT: Se usi una qualsiasi libreria JSON (es. JSON.js) allora puoi provare la funzione JSON.encode() e testare il risultato contro la stringa di valore vuoto.