2013-10-15 47 views
-3

我有一個這樣的字符串:一個字符串轉換爲數組使用javascript

data="{'year':'1990/01/01','income':1990/02/01,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}" 

我想設置一個數組這樣的:

var chart_data = [data]; 

我怎麼能這樣做呢?

+0

完全一樣的。 'chart_data'將是一個包含一個元素(字符串)的數組。但我想你想創建一個對象數組呢?請張貼您想要的預期結果。 –

+0

我不確定我是否理解這個問題......但是您瞭解JSON嗎?如果沒有......我敢打賭,如果你閱讀了JSON,一個解決方案會來找你。 –

+1

您的字符串是JSON格式嗎?或者它就像您輸入的那樣?導致該格式不是JSON。 – MarsOne

回答

2

假設第一income值,就是要既引用或數值,嘗試了這一點

var chart_data = JSON.parse('[' + data.replace(/'/g, '"') + ']') 

我不得不所有的單引號轉換爲加倍,以使字符串有效JSON解析。

0

你的數據幾乎是JSON這樣你就可以操縱它來匹配格式,然後用JSON.parse()將其轉換爲JavaScript對象。

第一個問題是您需要將'轉換爲",因爲JSON使用"來包裝字符串。您可以使用String.replace()來執行此操作。

您還可以在一個字符串幾個對象,但JSON只能給你一個結果。你可以用字符串中[]獲得JSON.parse()給你包含你的對象的數組。

我看到的最後一件事是收入的第一個項目有一些鬆動/ S的未在JSON不允許的。你需要包裹收入"或刪除/秒。

下面是一個例子:

var data = "{'year':'1990/01/01','income':19900201,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}"; 

data = '[' + data.replace(/'/g, '"') + ']'; 

var chart_data = JSON.parse(data); 
+0

謝謝你的回答。但是當我使用這段代碼時它不識別JSON –

+0

你用什麼來運行碼?什麼瀏覽器,節點版本等? – nkron

+0

intelliJ和tomcat,InternetExplorer 9,KasperSky –

相關問題