JavaScript中解析JSON数据的三种方法
本文介绍了JavaScript中解析JSON字符串的三种主要方法:使用eval()函数、通过new Function构造函数以及调用原生的JSON.parse()。eval存在安全与性能隐患,new Function兼容性有限,而JSON.parse是ES5标准推荐的安全高效方式,建议优先使用原生解析方法。
概述
概述
解析JSON数据的三种方法
在Web开发中,JSON格式的应用日益广泛,尤其是在基于Ajax的项目开发中,后端常返回JSON格式的字符串,前端需将其解析为JavaScript对象(JSON)。ECMA-262第三版(E3)未将JSON纳入标准,但第五版(E5)正式引入了JSON概念,包括全局JSON对象及Date的toJSON方法。
eval()方法
解析JSON数据的三种方法
new Function方法
解析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()方法
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就换过来了。
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
