2013-05-14 183 views
0

我正在使用Google圖表,並試圖使用JavaScript切換數據。從javascript中的字符串解析枚舉的數組數組

數據本身是從SQL數據庫在服務器上生成的。然後將其格式化爲一個字符串(我可以對此進行格式化),然後將其傳遞給瀏覽器以響應AJAX請求。

不幸的是,我一直無法使用JSON創建一個與Google圖表使用的格式相匹配的數組。這是我寫這個變量的一個例子,如果它是直接用javascript生成的話:["United States of America", 7.0287],["Canada", 7.3005],["Australia", 6.8945]

所以,這是一個數組數組,而且這兩個數組都是枚舉而不是關聯的。對於關聯數組,JSON似乎比枚舉數組好得多。

我試過使用jQuery的parseJSON()函數,以及JSON2.js庫。

var sourceData = '["United States of America", 7.0287],["Canada", 7.3005]'; 
//(the source data is usually pulled by AJAX, but comes in this format) 
var resultArray = new Array(); 

resultArray = JSON.parse(sourceData); //doesn't work 

resultArray = $.parseJSON(sourceData); //doesn't work 

任何想法?

+0

什麼是你的服務器端技術? –

+2

*「我可以格式化,但我想...」然後,爲什麼不使其有效JSON? – 2013-05-14 19:20:24

+0

通過一些實際結果來限定_doesn't work_總是一個好主意;在你的情況下,逗號的語法錯誤。 – Mathletics

回答

0

這不是一個數組的數組,這就是:

[["United States of America", 7.0287],["Canada", 7.3005],["Australia", 6.8945]] 

周圍無[]它只是一個語法錯誤。

+0

那很簡單。謝謝。有關使用JSON2庫vs jQuery來解析JSON的任何建議? – jgood408

+0

而JSON處理枚舉數組就好了。 – HBP

+1

@ jgood408如果你已經在使用jquery(也許說你的AJAX請求),那麼就使用它,因爲它已經在那裏了。 –

0
var sourceData = '["United States of America", 7.0287],["Canada", 7.3005]', 
    resultArray = JSON.parse("[" + sourceData + "]"); 

工作JSFiddle

+0

OP提到他們有能力格式化他們想要的迴應;該服務應該被修復以返回有效的響應,而不是在客戶端被黑客入侵。 – Mathletics