2015-01-21 31 views
-3

實際數據:轉換JSON字符串數組格式,可以被使用,以圖表數據

var x =" [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] }, 
{ name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, 
{ name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, 
{ name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }]"; 

如何轉換,所以我可以得到下面的結果:

var y = [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] }, 
{ name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, 
{ name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, 
{ name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }] 

我做了什麼:

嘗試1:

y=x.substring(1,x.length-1); // not helpfull 

嘗試2:

y = JSON.parse(x); // SyntaxError: JSON.parse: expected property name or '}' at line 1 column 5 of the JSON data 
+2

甚至不是有效的JSON – meskobalazs 2015-01-21 11:31:51

+1

這不是有效的JSON,因此爲什麼不能用'JSON.parse'解析。 – 2015-01-21 11:33:01

+0

http://jsonlint.com/ – melancia 2015-01-21 11:33:29

回答

0

該字符串不是有效的JSON(您可以在此檢查它http://jsonlint.com/),因此爲了解析它,您首先需要將其轉換爲有效的JSON。

爲了使它成爲一個有效的JSON,屬性名稱應該用雙引號(name:=>「name」:)封裝,字符串也一樣('Chintan test'=>「Chintan test」)。你可以用幾個字符串替換:

var x =" [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] }, { name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name:'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }]"; 

x = x.replace(/data:/g, '"data":'); //name attribute data to "data" 
x = x.replace(/name:/g, '"name":'); //name attribute name to "name" 
x = x.replace(/:\s*'(.+?)'/g, ':"$1"'); // :'string' to :"string" 

var y = JSON.parse(x); 

請注意,x中的字符串不應包含新行。

的工作的jsfiddle例如:http://jsfiddle.net/jx3opp8g/

0

這不是有效的JSON主要是因爲JSON需要的屬性名稱用引號引起來。一旦你在屬性名稱周圍添加引號,那麼它看起來應該是可解析的。

相關問題