字符串转换到JSON的二种模式

选取Ajax的档次花费进程中,常常须要将JSON格式的字符串重返到前端,前端解析成JS对象(JSON
)。
ECMA-262(E3) 中从未将JSON概念写到标准中,但在 ECMA-262(E5)
中JSON的定义被行业内部引入了,蕴涵全局的JSON对象和Date的toJSON方法。 

1,eval方式分析,可能那是最早的分析方法了。

function strToJson(str){
     var json = eval('(' + str + ')');
     return json;
}

记得str两旁的小括号哦。

2,new Function格局,相比较怪异哦。

function strToJson(str){
    var json = (new Function("return " + str))();
    return json;
}

IE6/7中当字符串中隐含换行(\n)时,new Function不可能分析,但eval却足以。

Ajax,3,使用全局的JSON对象。

function strToJson(str){
    return JSON.parse(str);
}

时下IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已兑现了该办法。

选用JSON.parse需严厉依照JSON规范,如属性都需用引号引起来,如下

var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse全数浏览器中均抛非常,解析失利。而前二种办法则没难题。

相关:

http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx 
https://developer.mozilla.org/en/Using\_JSON\_in\_Firefox 

相关文章