2012-08-06 107 views
1

有没有将字符串转换为多维数组的方法?将字符串转换为多维数组

例如为:

new Array(new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new 
    Array(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new 
    Array(1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1), new 
    Array(1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1), new 
    Array(1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new 
    Array(1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new 
    Array(1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new 
    Array(1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new 
    Array(1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new 
    Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)) 

这是一个字符串,文字和括号字符也一样,我想将其转换成真正的数组。

+0

你想要做什么? – 2012-08-06 17:04:59

+0

你想做某种“eval”吗? – eburgos 2012-08-06 17:06:16

+0

是的,我试图将其中一个文本字段的文本(我插入上述数组)转换为多维数组。 (相同的数组结构) – Zhafur 2012-08-06 17:18:47

回答

2

我相信有更好的方法来编写正则表达式,但是在这里,它基本上去掉了“新”,用“]”替换了“Array(”,用“[”替代了“)”。生成的字符串是一个有效的JSON字符串,可以使用JSON.parse()将其转换为数组。

var str:String = "new Array(new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), new\ 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new \ 
    Array(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new \ 
    Array(1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1), new \ 
    Array(1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1), new \ 
    Array(1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new \ 
    Array(1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new \ 
    Array(1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new \ 
    Array(1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new \ 
    Array(1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1), new \ 
    Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))"; 

    var myPattern:RegExp = /new/g; 

    var json:String = str.replace(myPattern, " "); 
    myPattern = /Array\(/g; 

    json = json.replace(myPattern, "["); 

    myPattern = /\)/g; 
    json = json.replace(myPattern, "]"); 

    var array:Array = JSON.parse(json) as Array; 
+0

我的JSON(最新版本)没有解析函数。 – Zhafur 2012-08-06 23:17:37

+0

如果您使用的是Adobe库,那么在版本11之后的Flash播放器中可以使用JSON.decode()JSON.parse。 – 2012-08-06 23:29:42