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

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字符串转成对象吧

posted @ 2018-07-14 16:09  【云】风过无痕  阅读(415)  评论(0编辑  收藏  举报