JS判断是否为空对象{}

判断1.利用JSON.stringify()node

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:利用循环对象属性json

/* 
 * 检测对象是不是空对象(不包含任何可读属性)。 //如你上面的那个对象就是不含任何可读属性
 * 方法只既检测对象自己的属性,不检测从原型继承的属性。 
 */
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()的区别:ui

parse用于从一个字符串中解析出json对象,如url

var str = '{"name":"huangxiaojian","age":"23"}'
spa

结果:code

JSON.parse(str)
orm

Object对象

  1. age"23"继承

  2. name"huangxiaojian"字符串

  3. __proto__: Object

注意:单引号写在{}外,每一个属性名都必须用双引号,不然会抛出异常。

stringify()用于从一个对象解析出字符串,如

var a = {a:1,b:2}

结果:

JSON.stringify(a)

"{"a":1,"b":2}"