es6将字符串转换为json_js字符串转化成json对象,使⽤
JSON.parse()需。。。
相信⼤部分⼈都知道或者去百度检索都会得到将js中的字符串转化成json对象常见的3种⽅法
举例:
var str = '{"name":"⼩明","age":18}';
将字符串转化json对象:
var json = JSON.parse(str);
var json = eval("(" + str + ")");
var json = (new Function("return " + str))();
通过console.log()将json打印到控制台,不管是使⽤以上3种哪⼀种⽅法,都能在chrome控制台看到成功转化的结果:
使⽤JSON.parse()⽅法来转化json对象,需要注意的坑点是什么?
1.字符串的数据格式
以上举例 str = '{"name":"⼩明","age":18}'; 属性name和age都⽤双引号引住,
有的⼈可能会习惯写成对象形式的字符串,如:str = '{name:"⼩明",age:18}';
结果使⽤JSON.parse()来转化会报错,因为使⽤JSON.parse需严格遵守JSON规范。
2.单引号与双引号
我们看到⼀开始的举例中 var str = '{"name":"⼩明","age":18}'; 使⽤单引号来套双引号,如果反过来写呢,如:var str = "{'name':'⼩明', 'age':18}";(相信也不少⼈习惯⽤双引号套单引号)
结果使⽤JSON.parse()来转化也会报错
3.兼容问题
最后总结来说,如果使⽤JSON.parse()⽅法来转化成json对象的数据格式的话,需要注意的是被转化的字符串⾥⾯的属性要使⽤引号,并且总体是单引号套双引号的⽅式,以及IE6/7浏览器是不⽀持该⽅法。
当然,如果你使⽤eval()或者new Function()的⽅式来转化,那就完全可以忽略上述的这两点需要注意的地⽅~( ̄▽ ̄~)(~ ̄▽ ̄)~哈哈
json转换对象附:
eval() 函数可将字符串转换为代码执⾏,并返回⼀个或多个值
eval调⽤时,实例为eval( "( javascript代码 )" )
var str = "function(){alert('a');}“;
str = eval("("+str+")");
str();
eval()的返回值
eval()的返回值遵循以下规则:
1.如果eval()的参数不是字符串,那么eval()将直接返回参数。
2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进⾏执⾏,并返回最后⼀⾏代码执⾏的结果。
3.如果字符串⽆法解析成合法的代码,eval()将抛出SyntaxError错误。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论