Após um pedido AJAX, às vezes meu pedido pode retornar um objeto vazio, como por exemplo:
var a = {};
Como posso verificar se esse'é o caso?
Não há uma maneira fácil de fazer isto. Você terá que passar por cima das propriedades explicitamente:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Se suporte a ECMAScript 5 estiver disponível, você pode utilizar Object.keys()
em vez disso:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Por exemplo:
var a = {empty:true};
Então você pode verificar facilmente no seu código de retorno de chamada AJAX.
Outra forma de verificar:
if (a.toSource() === "({})") // então 'a' está vazio
**EDIT***: Se você usar qualquer biblioteca JSON (f.e. JSON.js), então você pode tentar a função JSON.encode() e testar o resultado contra uma cadeia de valores vazia.