json字符转对象之new Function('return ' + str)

摘要:
varjsonStr='{“id”:1,“name”:“linda”,“爱好”:[{”id“:1,”name“:“hobby1”},{”id“:2,“name“:”hobby2”}]}';varobj1=评估;varobj2=();警报;//林达警报;//两种linda方法都有相同的效率,但在firefox3下,eval被发现比newFunction()慢得多——禁用firebug后,eval的速度大大提高。通常,我们不推荐eval(),因此请使用newFunction()将json字符串转换为对象
var jsonStr = '{"id":1,"name":"linda","hobbies":[{"id":1,"name":"hobby1"},{"id":2,"name":"hobby2"}]}';  
    var obj1 = eval('('+ jsonStr +')');  
    var obj2 = (new Function('return ' + jsonStr))();  
    alert(obj1.name); //linda  
    alert(obj2.name); //linda  

两种方法均可,效率差不多(eval略快于new Function()),但在firefox3下,发现eval远慢于new Function() -- 禁用firebug后,eval的速度大幅提升

通常,我们不建议使用eval(),所以,请使用new Function()的方式将json字符串转成对象吧

免责声明:文章转载自《json字符转对象之new Function('return ' + str)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringCloud之Hystrix熔断降级(六)Office办公软件操作技巧 office快捷键大全下篇

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

相关文章

Vue中如何给字符串前面加空格

  背景:        最近再用element UI写一个页面,输入框是必输的话,如果没有输入点提交,需要有个红色的提示信息。但是提示信息没有个输入框对齐,就想用加空格的方法来实现。后来发现通常的加空格的方法都无效       一、效果和代码如下:        二 、 想要的效果是提示信息和输入框对齐,网上没找到很好的方法,可能我加了label-w...

JAVA转义字符

JAVA中转义字符2009-08-12 17:40JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符 3.特殊字符:就3个 \":双引号 \':单引号 \\:反斜线 4.控制字符:5个...

关于WINFORM中输入法的设置

关于WINFORM中输入法的设置 (转) johnsuna(阿山NET)的专栏 开发中正好遇到这类问题,网络真好啊:)下面是正文收集,感谢作者的辛勤工作给我们带来的便利. 在WINFORM中我们经常遇到文本输入框中输入法被禁用或老是变全角输入法等问题,经查阅相关资料,现小结如下: (一)Control.ImeMode 属性:获取或设置控件的输入法编辑器...

VB.Net 数据类型,变量申明字符

数据类型 空间 范围 note String 平台而定 0到20亿(231) Byte 1Byte 0~255无符号 Chare 2Byte 0~65535 0~65535的无符号整型,代表Unicode字符 Char不能直接转换成数值类型必须通过Asc(),AscW()函数 Boolean 2Byte Short 2...

Unity3D 解决c#脚本乱码

    怀着无比激动的心情下载了Unity3D,按照网上的教程试着制作我的第一个U3D“作品”:camera绑定绘制GUI显示“Hello, World”,很简单的例子,因此很快就弄完顺利运行,可是我想试试中文字符的,原以为不会出问题,可是真的出问题了:在u3d运行时显示乱码。自己顺藤摸瓜,通过修改u3d的c#代码模板顺利解决问题: ① 定位到:Unit...

正则表达式二

正则表达式 - 语法http://www.runoob.com/regexp/regexp-syntax.html 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列出目录时,dir *.txt 或 ls *.txt 中的 *....