JSON.stringify JSON.parse 和eval(“(“+date+“)“) eval(date)

区别

JSON.stringify

把对象序列化变成 字符串

JSON.parse

把字符串变成 Json对象

eval("("+date+")")

相当于JSON.parse(a); 把字符串变成 Json对象,转换出来的结果都是json对象

eval(date)

相当于eval(("("+date+")") ),有些格式的字符串会转换失败 前端报错

举例

<script>
var obj={"草莓":"ww","苹果":"qq"};//这是个对象
var obj1='{"草莓":"ww","苹果":"qq"}';//这是个字符串

    var str = "";
    for(var key in this.obj){   
        str+= key+":"+ 
         this.obj[key] +";";
    }

    var a=JSON.stringify(obj);//把对象序列化变成 字符串
    var b=JSON.parse(a);        // 把字符串变成 Json对象

    var skuProps = eval("("+a+")"); //相当于JSON.parse(a);  把字符串变成 Json对象
    // var skuProps1 = eval(a);        //会报错 SyntaxError: Unexpected token ':'
     
    console.log(obj);
    console.log(obj1);  
    console.log("----");

    console.log("obj类型"+typeof(obj));
    console.log("obj1类型"+typeof(obj1));  
    console.log("----");

     console.log("str:"+str);
    console.log("str类型"+typeof(str))
    console.log("----");;

    console.log("a:"+a);
    console.log("a类型"+typeof(a));
    console.log("----");

    console.log("b是");
    console.log(b);
    console.log("b类型"+typeof(b));
    console.log("----");

    console.log("skuProps是");
    console.log(skuProps);
    console.log("skuProps类型"+typeof(skuProps));
    console.log("skuProps1类型"+typeof(skuProps1));
    console.log("----");
   
</script>

控制台输出结果
在这里插入图片描述
eval("("+data+")")可以将"{“name”:“123”}“和”[{“name”:“123”}]"两种格式的字符串转换为json对象。

var strJson1="{"name":"123"}";
var strJson2="[{"name":"123"}]";
var json1=eval("("+strJson1+")");
var json3=eval("("+strJson2+")");

结果
在这里插入图片描述

eval(data)是不能将"[{“name”:“123”}]"这种格式的字符串转换为json对象的,会报错误:Uncaught SyntaxError: Unexpected token ‘:’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值