给定一串JSON数据,您如何安全地将该字符串转换为JavaScript对象?
很显然,你可以通过像......这样的东西不安全地做到这一点.
var obj = eval("(" + json + ')');
Run Code Online (Sandbox Code Playgroud)
...但是这使得我们容易受到包含其他代码的json字符串的影响,这对于简单的eval来说似乎非常危险.
eval函数是一种动态生成代码的强大而简单的方法,那么有什么警告呢?
developer.mozilla.org 说:
不要不必要地使用 eval!eval() 是一个危险的函数,它以调用者的权限执行它传递的代码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
例如,任何恶意用户都可以打开 chrome 调试器,并修改正在执行的 javascript 代码。所以他可以把自己的功能执行等。
一般有没有“安全的javascript代码”之类的东西?
我有一个字符串如下:
my_string = "['page1',5],['page2',3],['page3',8]";
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下内容:
my_array = [['page1',5],['page2',3],['page3',8]];
Run Code Online (Sandbox Code Playgroud)
我知道有一个分割函数,我必须在其中指定分隔符。当我这样做时:-
my_string.split(',');
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
["['page1'", "5]", "['page2'", "3]", "['page3'", "8]"]
Run Code Online (Sandbox Code Playgroud)