我一直在寻找解决方案,但我只发现了从["1","2","3"]
到[1,2,3]
的转换,但是我的问题是如何将其转换:"[1,2,3]"
到[1,2,3]
。
对你们中的许多人来说也许很清楚,但对我而言却不是。
最佳答案
有几种方法:
eval("[1,2,3]")
JSON.parse("[1,2,3]")
您可以访问https://github.com/koldev/JsonParser并为没有这种方法的浏览器(例如IE7)获得正式的实现。 $.parseJSON("[1,2,3]")
Function("return [1,2,3];")()
[]["filter"]["constructor"]("return [1,2,3]")()
(感谢JSF*ck)最安全的选择是使用jQuery或浏览器的 native JSON包。
记住
eval
是邪恶的!它允许执行任意代码。Function
构造函数也是如此,但是对于这些构造函数,您可以向其中添加'return'
。如果执行
eval("[1,2,3]; evil();")
,将执行evil()
函数,而Function("return [1,2,3]; evil();")
将阻止evil()
的执行。这不是完美的解决方案,因为仍然可以执行
Function("return evil() || [1,2,3];")
,并且将执行evil()
。但是,在这种情况下,仅当[1,2,3]
返回伪造的值(evil()
,""
,null
,0
,...)时,才返回false
。关于javascript - 将字符串数组 "[1,2,3]"转换为Javascript中的数字数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30728877/