使用javascript将一个字符串转换为数组

时间:2013-10-15 06:12:39

标签: javascript

我有一个这样的字符串:

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

我想将它设置在一个这样的数组上:

var chart_data = [data];

我该怎么做?

2 个答案:

答案 0 :(得分:2)

假设第一个income值是引用的或数值,请试试这个

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

我必须将所有单引号转换为double才能使字符串对JSON解析有效。

答案 1 :(得分:0)

您的数据几乎是JSON,因此您可以对其进行操作以匹配该格式,然后使用JSON.parse()将其转换为Javascript对象。

第一个问题是您需要将'转换为",因为JSON使用"来换行字符串。您可以使用String.replace()执行此操作。

在一个字符串中也有几个对象,但JSON只能给你一个结果。您可以将字符串包装在[]中以获取JSON.parse(),以便为您提供包含对象的数组。

我看到的最后一件事是第一个项目的收入有一些松散的/,这些在JSON中是不允许的。您需要将收入包装在"或删除/

以下是一个例子:

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);