js解析Json字符串的⽅法
要把⼀个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. new Function
var arr = new Function("return "+arrstr)();
alert(arr);
//通过alert可以看出arr输出[1,2,3,4,5],通过创建匿名函数并执⾏的⽅法将字符串转换成数组,完成字符解析,该⽅法只接受字符串。
字符串截取方法js3.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⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。