Ajax字符串转换成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却得以。

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 

相关文章