2016-06-07 56 views
0

我有這個字符串變量動態生成的:莫里斯圖表從字符串轉換數據爲對象

var vData = "[{value: 7, label: '1'},{value: 45, label: '2'},{value: 38, label: '4'},{value: 9, label: '7'}]"; 

如何將我的字符串變量轉換爲數組來傳遞數據參數?

我已在Javascript中使用:JSON.parse(vData),但不起作用。 在一個單獨的PHP文件中,我試過了:echo json_encode($arr);在PHP文件的末尾,但不起作用。

我在哪裏錯了?

+0

哪些數據參數? –

+0

Morris.Donut({ \t元件: '節目-圖形', \t數據:VDATA, \t格式化:函數(X){返回X + 「%」} })上( '點擊',函數(。 i,row){ \t console.log(i,row); }); – Tonybho

+1

您必須將您的字符串和屬性名稱用雙引號包裝以使'JSON.parse'正常工作。例如:''[[「value」:7,「label」:「1」}]'' – user3297291

回答

0

您必須將您的字符串和屬性名稱包裝在雙引號中,以便JSON.parse正常工作。例如:[{"value": 7, "label": "1"}]

我強烈建議您在序列生成的代碼解決這個,但只是向你展示它的工作原理(絕對不是正確的正則表達式的方法):

var data = "[{value: 7, label: '1'},{value: 45, label: '2'},{value: 38, label: '4'},{value: 9, label: '7'}]"; 
 

 

 
data = data.replace(/value/g, '"value"'); 
 
data = data.replace(/label/g, '"label"'); 
 
data = data.replace(/\'/g, '"'); 
 

 
console.log(JSON.parse(data));