JavaScript中字符串转换为JSON对象的四种方法及兼容性对比

作者:键盘侠时间:2026-10-23 15:56:14浏览:461

本文详解JavaScript中将字符串转换为JSON对象的四种常见方式,包括jQuery插件、浏览器原生API、eval函数及官方json.js库。重点对比各方案在IE8及以下版本的兼容性问题,指出eval存在的安全风险,并推荐结合使用jQuery与官方库以实现最佳兼容性与安全性。

引言

本文主要介绍在JavaScript中将字符串转换为JSON对象的方法,内容包含详细的示例代码,对学习和工作具有参考价值。

Json格式字符串与Json对象的区别

Json格式字符串


"{"rows":[{"date":"2018-11-19","money":"22","type":"2"}],"currentTime":"2018-11-19","reportType":"day"}"

Json对象


{
"rows": [{
"date": "2018-11-19",
"money": "22",
"type": "2"
}],
"currentTime": "2018-11-19",
"reportType": "day"
}

总结:Json字符串仅是json对象外围添加双引号,需注意json字符串中key的引号必须为双引号,单引号无效。

jQuery插件转换方式

1、jQuery插件支持的转换方式:

示例:


$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

浏览器原生API转换方式

2、浏览器支持的转换方式(Firefox,chrome,opera,safari,ie)等浏览器:

示例:

JSON.parse(jsonstr); //可以将json字符串转换成json对象

JSON.stringify(jsonobj); //可以将json对象转换成json对符串

注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

eval函数转换方式及安全风险

3、Javascript支持的转换方式:

eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号

注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

JSON官方库转换方式

4、JSON官方的转换方式:

http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

方案总结与建议

综上,首先推荐1,其次是4,2兼容性不好,3会执行内容中的表达式带来一些不必要的问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

作者最新文章