parse 和 eval 的区别

一般在js中使用parse将String转Json,相对来说比较安全

var A = "{  a: 1 , b : 'hello' }";
var B = "{  'a': 1 , 'b' : 'hello' }";
var C = "{'a':1,'b':'hello'}";
var D = '{"a":1,"b":"hello"}';
var E = '{ "a" : 1 , "b" : "hello" }';
var F = '{ "a" : 1 ,\n  "b" : "hello" }';
var G = '{ "a" : 1 , "b" : window.location.href="https://www.baidu.com" }';
parse:
    对象和数组:属性名称必须用双引号包裹;最后一个属性后面不能有逗号。
    数值:前导0不能使用(在 JSON.stringify 中将会被忽略,在 JSON.parse 会抛出错误);小数点后面至少有一个数字。
    字符串:只有有限的字符能够被转义;不允许某些控制字符;但允许使用Unicode 行分隔符 (U+2028) 和段落分隔符 (U+2029) ;字符串必须用双引号括起来。

例:JSON.parse(A);——>D、E、F可以
var data={
    "student" : [
        {"name":"孔明","age":17},
        {"name":"刘备","age":17},
        {"name":"曹操","age":17}
    ]

eval:
    var jsonText=JSON.stringify(data);//将Json转字符串
    eval('('+jsonText+')');
    
    以上全可以转化。
    eval()不会检查JSON的格式,如果字符串中,存在js的代码会一并执行
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值