2016-09-16 71 views
0
將字符串轉換成JSON時

我的代碼看起來是這樣的:獲取語法錯誤:JSON解析錯誤:應爲「}」嘗試使用JavaScript

var str = "[{u'total': '54', u'value': '54', u'label': u'14 Sep'}, {u'total': '58', u'value': '4', u'label': u'15 Sep'}, {u'total': '65', u'value': '7', u'label': u'16 Sep'}]"; 
console.log(JSON.parse(str)); 

換句話說,我試圖將字符串轉換成使用Js的JSON對象列表。我相信我的字符串的結構是實心的,但是,我在控制檯收到此錯誤:

SyntaxError: JSON Parse error: Expected '}' 

誰能幫助我解決這個問題?爲什麼我會得到這個錯誤?

+3

這不是有效的JSON,因爲JSON不能有單引號,因此錯誤 – adeneo

+7

該字符串不包含JSON,所以你不能使用'JSON.parse'。看起來像你打印Python字典。先將字典轉換爲JSON並打印出來。 *「...到JSON對象列表中......」* [沒有像「JSON對象」這樣的東西](http://benalman.com/news/2010/03/theres-no-such-事情作爲一個JSON /) –

+0

好吧。我怎樣才能解決這個問題呢? –

回答

-1

如果你不能改變這條巨蟒字典,你可以用一種變通方法:

var str = "[{u'total': '54', u'value': '54', u'label': u'14 Sep'}, {u'total': '58', u'value': '4', u'label': u'15 Sep'}, {u'total': '65', u'value': '7', u'label': u'16 Sep'}]"; 
 

 
str = str.replace(/u?'(.+?)': u?'(.+?)'/g, '"$1":"$2"'); 
 

 
console.log(str); 
 

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