JavaScript中解析JSON数据的三种方法

作者:小括号

时间:2026-10-29

浏览:606

本文介绍了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就换过来了。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章