概述
现在json格式在web开发中越来越受重视,特别是在使用ajax开发项目的过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(json )。
ecma-262(e3)中没有将json概念写到标准中,还好在 ecma-262(e5)中json的概念被正式引入了,包括全局的json对象和date的tojson方法。
解析json数据的三种方法
eval()方法
解析json数据的最常用方法是使用javascript的eval()方法,代码如下:
复制代码 代码如下:
function tojson(str){
var json = eval('(' + str + ')');
return json;
}
该方法存在性能和安全方面的问题,不建议使用。
new function方法
复制代码 代码如下:
function tojson(str){
var json = (new function(return + str))();
return json;
}
json.parse()方法
这种方法只支持ie8/firefox3.5+/chrome4/safari4/opera10 以上版本,这些浏览器都已经接近w3c标准,默认实现了tojson方法。
复制代码 代码如下:
function tojson(str){
return json.parse(str);
}
json2.js会在浏览器原生支持json.parse的时候选用原生版本,而且它跟es5是api兼容的。在es5还没完全普及的现状下,john resig大神推荐用json2.js主要是为了现在就能用跟es5兼容的api,日后能平滑过渡到es5——只要去掉一个import就换过来了。