从javascript中的字符串解析数组的枚举数组

从javascript中的字符串解析数组的枚举数组,javascript,json,Javascript,Json,我正在使用谷歌图表,并试图使用javascript切换数据 数据本身是从SQL数据库在服务器上生成的。然后将其格式化为字符串(我可以按照自己的意愿格式化),并根据AJAX请求将其发送给浏览器 不幸的是,我无法使用JSON创建一个与GoogleCharts使用的格式匹配的数组。这是一个示例,说明了如果直接用javascript生成变量,我将如何编写该变量:[“美利坚合众国”,7.0287],“加拿大”,7.3005],“澳大利亚”,6.8945] 这是一个数组数组,两个数组都是枚举的而不是关联的。

我正在使用谷歌图表,并试图使用javascript切换数据

数据本身是从SQL数据库在服务器上生成的。然后将其格式化为字符串(我可以按照自己的意愿格式化),并根据AJAX请求将其发送给浏览器

不幸的是,我无法使用JSON创建一个与GoogleCharts使用的格式匹配的数组。这是一个示例,说明了如果直接用javascript生成变量,我将如何编写该变量:
[“美利坚合众国”,7.0287],“加拿大”,7.3005],“澳大利亚”,6.8945]

这是一个数组数组,两个数组都是枚举的而不是关联的。与枚举数组相比,JSON似乎在关联数组中工作得更好

我尝试过使用jQuery的parseJSON()函数以及JSON2.js库

var sourceData = '["United States of America", 7.0287],["Canada", 7.3005]';
//(the source data is usually pulled by AJAX, but comes in this format)
var resultArray = new Array();

resultArray = JSON.parse(sourceData); //doesn't work

resultArray = $.parseJSON(sourceData); //doesn't work

有什么想法吗?

这不是数组,这是:

[["United States of America", 7.0287],["Canada", 7.3005],["Australia", 6.8945]]
如果没有周围的
[]
,这只是一个语法错误

var sourceData = '["United States of America", 7.0287],["Canada", 7.3005]',
    resultArray = JSON.parse("[" + sourceData + "]");

工作

你的服务器端技术是什么?“我可以按我想要的方式格式化它…”那么为什么不让它成为有效的JSON呢?限定它总是一个好主意,因为它不会带来一些实际的结果;在你的例子中,逗号有语法错误。这很简单。谢谢关于使用JSON2库与jQuery来解析JSON?和JSON处理枚举数组的任何建议。@jgood408如果您已经在使用jQuery(比如说您的AJAX请求?),那么就使用它吧,因为它已经存在了。或者,如果您正在使用jQuery处理您的AJAX请求。您可以将
dataType
属性设置为
json
,结果将经过预解析后返回。OP提到他们有能力按照自己的意愿格式化响应;服务应该是固定的,以返回有效的响应,而不是在客户端被黑客攻击。