Js解析Json字符串的几种方法比较
2015-11-24 10:19
405 查看
1. eval
var arrstr ="["+"1,2,3,4,5"+"]";
eval(arrstr);
//eval方法是js的全局方法,接收字符串,返回字符串的值并执行其中的代码。
2. new Function
var arr = new Function("return "+arrstr)();
alert(arr);
//通过alert可以看出arr输出[1,2,3,4,5],通过创建匿名函数并执行的方法将字符串转换成数组,完成字符解析,该方法只接受字符串。
3.native
var arr=JSON.parse(arrstr);
alert(arr);
//JSON.parse方法是浏览器的原生方法,目前在chrome,firefox 3.6+,IE 8+,safari 5+,opera都具有良好的支持,是上述几种方法中执行效率最高的方法。
几种方法的执行效率比较如下,firefox如果把firebug等addon都去掉的话eval效率会高很多,下图是一个比较老的比较结果,现在的chrome浏览器,safari浏览器,opera,firefox,ie都已经支持了JSON.parse方法:
通常情况下尽量避免使用eval方法和new Function方法,推荐使用JSON原生方法,如果必须要使用eval和new Function二选一的话,那就使用new Function方法。
var arrstr ="["+"1,2,3,4,5"+"]";
eval(arrstr);
//eval方法是js的全局方法,接收字符串,返回字符串的值并执行其中的代码。
2. new Function
var arr = new Function("return "+arrstr)();
alert(arr);
//通过alert可以看出arr输出[1,2,3,4,5],通过创建匿名函数并执行的方法将字符串转换成数组,完成字符解析,该方法只接受字符串。
3.native
var arr=JSON.parse(arrstr);
alert(arr);
//JSON.parse方法是浏览器的原生方法,目前在chrome,firefox 3.6+,IE 8+,safari 5+,opera都具有良好的支持,是上述几种方法中执行效率最高的方法。
几种方法的执行效率比较如下,firefox如果把firebug等addon都去掉的话eval效率会高很多,下图是一个比较老的比较结果,现在的chrome浏览器,safari浏览器,opera,firefox,ie都已经支持了JSON.parse方法:
通常情况下尽量避免使用eval方法和new Function方法,推荐使用JSON原生方法,如果必须要使用eval和new Function二选一的话,那就使用new Function方法。
相关文章推荐
- JavaScript DOM 学习总结(五)
- jsp传数据到后台乱码的处理方法
- jsp回车键实现登录功能
- 九个Console命令,让js调试更简单
- JS正则表达式验证数字
- 我写的JS脚本之传送门
- js中截取字符串
- js中通过函数名字符串调用函数
- 带领大家学习javascript基础篇(一)之基本概念
- 基于JavaScript实现Json数据根据某个字段进行排序
- 解决服务器不支持json
- JavaScript中的setInterval用法
- JavaScript权威指南_171_第17章_事件处理_17.5-鼠标事件
- 实现SELECT的全选,反选,AB选的JAVASCRIPT代码
- JavaScript权威指南_170_第17章_事件处理_17.4-文档加载事件
- js生成随机数的过程解析
- JavaScript常用函数集锦
- [Web前端]梳理-JavaScript.5.函数,6.作用域
- [Javascript] Intro to Recursion
- 用JavaScript实现动态省市县三级联动