判断1.利用JSON.stringify()
if(JSON.stringify(accounts) == "{}"){...}
实例:在easyui的tree的
data-options="onClick: function(node){ console.info(node);
//该node的attribute是一个对象,如果该对象中不为空对象,
//即里面有url属性,那么取值2;如果为空对象,则取值1
//注意不能直接使用node.attributes=={},因为即使是空对象,里面会有其他内置属性的,比如__proto__
var url = JSON.stringify(node.attributes)=='{}'?'':'${pageContext.request.contextPat h}'+node.attributes.url;
addTab({title:node.text,href:url});
}"
/*如果只是判断attributes对象中是否具有某个属性,可以使用if(node.attributes.url){flag = true}*/
判断2:利用循环对象属性
/*
* 检测对象是否是空对象(不包含任何可读属性)。 //如你上面的那个对象就是不含任何可读属性
* 方法只既检测对象本身的属性,不检测从原型继承的属性。
*/
function isOwnEmpty(obj)
{
for(var name in obj)
{
if(obj.hasOwnProperty(name))
{
return false;
}
}
return true;
};
/*
* 检测对象是否是空对象(不包含任何可读属性)。
* 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。
*/
function isEmpty(obj)
{
for (var name in obj)
{
return false;
}
return true;
};
顺便说下JSON.parse()和JSON.stringify()的区别:
parse用于从一个字符串中解析出json对象,如
var str = '{"name":"huangxiaojian","age":"23"}'
结果:
JSON.parse(str)
Object
age: "23"
name: "huangxiaojian"
__proto__: Object
注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。
stringify()用于从一个对象解析出字符串,如
var a = {a:1,b:2}
结果:
JSON.stringify(a)
"{"a":1,"b":2}"