我有一個這樣的字符串:一個字符串轉換爲數組使用javascript
data="{'year':'1990/01/01','income':1990/02/01,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}"
我想設置一個數組這樣的:
var chart_data = [data];
我怎麼能這樣做呢?
我有一個這樣的字符串:一個字符串轉換爲數組使用javascript
data="{'year':'1990/01/01','income':1990/02/01,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}"
我想設置一個數組這樣的:
var chart_data = [data];
我怎麼能這樣做呢?
假設第一income
值,就是要既引用或數值,嘗試了這一點
var chart_data = JSON.parse('[' + data.replace(/'/g, '"') + ']')
我不得不所有的單引號轉換爲加倍,以使字符串有效JSON解析。
你的數據幾乎是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);
謝謝你的回答。但是當我使用這段代碼時它不識別JSON –
你用什麼來運行碼?什麼瀏覽器,節點版本等? – nkron
intelliJ和tomcat,InternetExplorer 9,KasperSky –
完全一樣的。 'chart_data'將是一個包含一個元素(字符串)的數組。但我想你想創建一個對象數組呢?請張貼您想要的預期結果。 –
我不確定我是否理解這個問題......但是您瞭解JSON嗎?如果沒有......我敢打賭,如果你閱讀了JSON,一個解決方案會來找你。 –
您的字符串是JSON格式嗎?或者它就像您輸入的那樣?導致該格式不是JSON。 – MarsOne