将字符串转换为数组?

4
如果我有以下字符串,如何轻松地将其转换为数组?
"[[0.01,4.99,0.01],[5,14.95,0.05]]"

我希望得到与以下结果相同的输出:
var x = [[0.01,4.99,0.01],[5,14.95,0.05]];
2个回答

9
var x = JSON.parse("[[0.01,4.99,0.01],[5,14.95,0.05]]");

或者像jQuery一样进行JSON解析(比eval更好):

var x = (new Function("return " + "[[0.01,4.99,0.01],[5,14.95,0.05]]"))();

为了让这个答案更完整,您可以使用一个polyfill来支持旧浏览器中的JSON.parse和JSON.stringify。我推荐json3,因为Crockford的json2有点奇怪(内部人知道我是什么意思)。

2
function 版本点赞 :) - Andras Zoltan

5
var x = JSON.parse("[[0.01,4.99,0.01],[5,14.95,0.05]]");

对于那些没有内置JSON对象的旧浏览器,您可能需要下载Crockford的json2.js,该库定义了一个具有相同API的JSON对象(如果尚未定义)。


提及 json2.js 可获得加分。相关信息请参考:https://dev59.com/ynNA5IYBdhLWcg3wn_Q1 - kapa
2
顺便提一下,你可能会被诱惑使用eval()代替JSON.parse来处理那些没有定义JSON的浏览器,但是不要这样做。使用Corckford的js来使其正常工作。 - Salketer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接