-4

我有一个这样的字符串:

data="{'year':'1990/01/01','income':1990/02/01,'expenses':1000668},{'year':'1990/03/01','income':1000778,'expenses':1000778}"  

我想将它设置在一个数组上,如下所示:

var chart_data = [data];

我怎样才能做到这一点?

4

2 回答 2

2

假设第一个income值是引号或数值,试试这个

var chart_data = JSON.parse('[' + data.replace(/'/g, '"') + ']')

为了使字符串对 JSON 解析有效,我必须将所有单引号转换为双引号。

于 2013-10-15T06:20:41.577 回答
0

您的数据几乎是 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);
于 2013-10-15T06:26:51.770 回答