js解析Json字符串的方法

摘要:
要把一个xml字符串转换成数组的形式,每个值都应该是number类型的,想当然的就用了split方法,结果。。。问题来了,服务器要求数组的值是数字,而split是字符方法,所产生的数组也是字符串,麻烦来了。。

要把一个xml字符串转(“1,2,3,4,5,6,7,8,1,2”)换成数组的形式,每个值都应该是number类型的,想当然的就用了split方法,结果。。。问题来了,服务器要求数组的值是数字,而split是字符方法,所产生的数组也是字符串,麻烦来了。。这么大的数据量总不能一个一个的for循环parseInt吧,想想就头痛!

天无绝人之路,原来js这么强大,有很多方法可以解决,只不过是我之前不知道而已,这里总结下,并简单的区分下优劣:

1. eval

var arrstr ="["+"1,2,3,4,5"+"]";

eval(arrstr);

//eval方法是js的全局方法,接收字符串,返回字符串的值并执行其中的代码。

2. newFunction

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方法:

js解析Json字符串的方法第1张

通常情况下尽量避免使用eval方法和new Function方法,推荐使用JSON原生方法,如果必须要使用eval和new Function二选一的话,那就使用new Function方法。

免责声明:文章转载自《js解析Json字符串的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转载]JavaScript 图片预览效果# CSS常用selector选择器列举总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js 前端向服务器端传送文件的常用请求方式

在做项目的过程当中写到文件上传的功能,想着之前也是踩坑过来的,就在这里总结下自己常用的方法吧。我们现在一般都是通过ajax来搭起前后端数据交互的桥梁,但是大家在做到有文件需要上传的时候就会发现我们用ajax请求通过json来传参就无法满足我们需求了,如下图: 那么来说说我常用的两种上传方式吧。 1:使用FormData对象 这种方式即不用引入第三方上传插...

如何安全地运行用户的 JavaScript 脚本

本文来自网易云社区,转载务必请注明出处。 有时候我们需要运行用户输入的 JavaScript 脚本(以下简称脚本)。对于我们来说,这些脚本是不可信任的,如果在当前的 Context 中运行这些脚本,它们就能获取到像 cookie、localStorage、DOM 元素等隐私数据,会有潜在的安全问题。 本文所说的用户脚本,是指用户在文本框中输入的 Jav...

nodejs下function,new function和this的研究

转:http://www.html5china.com/html5-article-3023-1.html 重点我都高亮了! 由于在使用nodejs之前接触js也比较少,最近一直被js的function和new function所困惑,由于两者都可以呈现出面向对象的样子,不知道两者的差别在哪里,就此问题做了一些研究。在研究的过程中发现this指针是个...

XML做数据库操作之 我浑了

只前我看邵志东老师的教程做了一个实例 地址是 http://thcjp.cnblogs.com/archive/2006/05/06/392739.html但是删除的问题始终没有解决,这次做留言本 http://thcjp.cnblogs.com/archive/2006/06/26/435962.html我实在想不到好办法来维护广告控件使用的那个XML文...

JS中图片飞飞效果

当鼠标在界面上移动的时候,后面有一连串的图片跟随者一起飘动,效果如下:       实现的基本思想:准备五个img标签,为了方便控制都放在一个div里面,设置div的定位方式为 fixed,设置成这中定位方式主要是为了解决在页面出现滚动条的情况下,图片还能够跟随鼠标移动。然后再鼠标移动的时候,延时给每一个图片设置定位的left和top距离就OK了。HTM...

js中的键盘事件和触摸事件

一、键盘事件键盘事件不能绑定某个标签,必须是window或document两个使用效果完全一致。可以获取焦点的标签:input select textarea button a 。。。 1、keydown 按下按键触发,如果一直按着,会一直触发 //按下键盘任意按键,触发事件 window.onkeydown = function(){   console...