2012-05-19 73 views
0

我創建的JSP以下字符串響應:如何將字符串數組響應轉換爲JavaScript 2D數組?

[[[1,2,3,4],[5,6,7,8]],[[9,10,11,12],[13,14,15,16]]] 

並獲得jQuery的這種反應。

但我得到它作爲一維數組,我需要數組像只

我得到的輸入反應

var a = "[[[1,2,3,4],[5,6,7,8]],[[9,10,11,12],[13,14,15,16]]]"; 
+4

那最有可能是JSON數據,所以看看使用json庫,或者作爲最差的+最後一個努力'eval()'它。 –

+1

Javascript沒有2D數組...你可以有數組的數組,但是你可以在你的例子中獲得這個數組, –

+0

var set = eval(a)=>然後你可以使用set [0] [0 ]來獲得你的第一組數據集[0] [0] [2] == 3 –

回答

3

兩種可能的方法:

  1. var arr = JSON.parse(a);
  2. var arr = eval(a);
+0

但是,如果字符串不是由腳本本身生成的,則不推薦使用'eval'。 (儘管我的答案已+1) –

+0

@Derek:是和否。前端的'eval'比後端的'eval'少很多麻煩;但是您必須謹慎,因爲它是XSS的入口點。只要您的變量('a')從可信來源填充,您的用戶就不必擔心。 「eval」的另一個缺點是內在的性能問題,因爲瀏覽器必須重新解釋代碼。 – vol7ron

0

你得到JSON,這是一個字符串。您需要將其解析爲JavaScript對象。

var object_a = JSON.parse(a); 
1

要創建從它的字符串表示一個任意嵌套陣列(或JSON支持的任何對象,就此而言),則可以使用JSON.parse方法。

var arr = JSON.parse("[[[1,2,3,4],[5,6,7,8]],[[9,10,11,12],[13,14,15,16]]]"); 
+0

我需要什麼庫來包含它工作嗎?它支持IE嗎? – Pradeep

+2

[IE8 +](http://caniuse.com/json)。 IE7,死在火災中。 – Amadan

+0

@ user629804它將在IE8 +中工作,您可以使用[json2庫](https://github.com/douglascrockford/JSON-js)添加對舊版瀏覽器的支持。 –

0

使用JSON.parse

對於IE8以下的支持,請使用jQuery。 (幸運的是,如果你的網站已經在使用jQuery!;)

相關問題