相关疑难解决方法(0)

jQuery使用(new Function("return"+ data))(); 而不是eval(数据); 解析JSON,为什么?

此链接向您显示jQuery (new Function("return " + data))();用于旧版浏览器,以解析JSON字符串而不是eval().

这有什么好处?如果JSON字符串不安全怎么办?

javascript jquery json

17
推荐指数
2
解决办法
9192
查看次数

评估JSON字符串 - eval()与新函数()

可能重复:
jQuery使用(new Function("return"+ data))(); 而不是eval(数据); 解析JSON,为什么?

给定一个表示有效JSON字符串的字符串,这两种解析方法之间是否存在差异:

var str, obj;

str = '{"prop":"value"}';

// method 1:
obj = eval( '(' + str + ')' );

// method 2:
obj = ( new Function( 'return (' + str + ');' ) )();
Run Code Online (Sandbox Code Playgroud)

我注意到jQuery使用第二种方法来解析JSON字符串(在没有内置JSON解析器的环境中).我想知道他们为什么不使用第一种方法.为什么要创建一个函数对象并在可以使用时调用它eval()

请完整关闭

javascript json eval

9
推荐指数
1
解决办法
2489
查看次数

标签 统计

javascript ×2

json ×2

eval ×1

jquery ×1