在一个AJAX请求之后,有时我的应用程序可能会返回一个空对象,比如。
var a = {};
我怎样才能检查是否是这种情况?
要做到这一点,没有简单的方法。你必须明确地循环处理这些属性。
function isEmpty(obj) { for(var prop in obj) { if(obj.hasOwnProperty(prop)) return false; } return true; }
如果ECMAScript 5 support可用,你可以用Object.keys()代替。
Object.keys()
function isEmpty(obj) { return Object.keys(obj).length === 0; }
1.只是一个变通办法。你的服务器能否在没有数据的情况下生成一些特殊的属性?
比如说。
var a = {empty:true};
然后你就可以在你的AJAX回调代码中轻松地检查它。
2.另一种检查方式。
如果(a.toSource() ==="({})") //则'a'为空
编辑:。 如果你使用任何JSON库(如JSON.js),那么你可以尝试JSON.encode()函数,并测试空值字符串的结果。
function isEmpty(obj) { for(var i in obj) { return false; } return true; }
要做到这一点,没有简单的方法。你必须明确地循环处理这些属性。
如果ECMAScript 5 support可用,你可以用
Object.keys()
代替。1.只是一个变通办法。你的服务器能否在没有数据的情况下生成一些特殊的属性?
比如说。
然后你就可以在你的AJAX回调代码中轻松地检查它。
2.另一种检查方式。
编辑:。 如果你使用任何JSON库(如JSON.js),那么你可以尝试JSON.encode()函数,并测试空值字符串的结果。