2016-09-16 70 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));