我有一个这样的字符串:
data="{'year':'1990/01/01','income':1990/02/01,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}"
我想将它设置在一个数组上,如下所示:
var chart_data = [data];
我怎样才能做到这一点?
我有一个这样的字符串:
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 中是不允许的。您需要将收入包含在"
或删除/
s。
这是一个例子:
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);