十分钟年华老去

倒数时日,焦躁空下。

导航

JS中String转换成Json对象

Posted on 2013-04-17 00:53  CN.programmer.Luxw  阅读(892)  评论(0)    收藏  举报
<script type="text/javascript">

/**
 * 转换为json格式
 */
String.prototype.toJSON = function(){
    try{
        return eval("("+this+")");
    }catch(e){
        return {};
    }
}
/**
 * 判断json对象是否为{}空的情况
 */
function isEmptyObject(obj){
for ( var bb in obj ) {
    return false;
}
return true;
}
 
 
/**
 * 简单测试
 */
  function test(){
     var isJsonEmpty = "{}";
     var isJsonObj = "{'name':'测试1',age:24}";
     var isJsonArr = "[{'name':'测试2',age:24},{'name':'测试3',age:25},{'name':'测试4',age:26}]";
     var json1 = isJsonEmpty.toJSON();
     var json2 = isJsonObj.toJSON();
     var json3 = isJsonArr.toJSON();
     alert(isEmptyObject(json1));//ture
     alert(json2.name);//测试1
     alert(json3.length);//3
  }
</script>

 

  补充如下:

var a =eval("[1,2,3]");
alert(a);//输出1 2 3

function(){}();
/*创建匿名函数,并执行。但会报语法错误(由于大括号在JS的多义性造成),{}表示语句块无任何意义,var obj ={}表示对象字面量表示法
比如:{abc:123,name:"CJ"}可以按照label语法解析,也可以安对象字面量方法解析,按照label语法解析是不符合语法格式的所以报错了,
解决办法加入({abc:123,name:"CJ"});  ,加入括号告之浏览器按照表达式方式解析。所以上面函数可以这样写(function(){})();
*/
//二种方式转换字符串为JSON对象
var json = "{name:'CJ',age:18}";
//var data = eval("("+json+")");//加入括号的原因如上所述。
data = (new Function("","return "+json))();