js中将字符串转换成json的三种方式
1,eval方式解析
恐怕这是最早的解析方式
function strToJson(str){ var json = eval('(' + str + ')'); return json; }
2,new Function形式
比较怪异
function strToJson(str){ var json = (new Function("return " + str))(); return json; }
3,使用全局的JSON对象
function strToJson(str){ return JSON.parse(str); }
使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下
var str = '{name:"jack"}'; var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
注意:单引号里包裹双引号,正确格式如下
var str = '{"name":"jack"}';