JavaScript中字符串转换为JSON对象的四种方法及兼容性对比
本文详解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会执行内容中的表达式带来一些不必要的问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐
2026-11-05 14:45:59
JS空字符串和纯空格转浮点数的结果是什么
2026-11-05 11:04:42
JS在线格式化缩进混乱怎么办?配置项调整技巧
2026-11-04 23:27:25
JS怎么获取秒级时间戳
2026-11-03 21:45:29
JS时间戳怎么从毫秒转换为秒
2026-11-03 20:04:14
