使用ajax导入JS数组以传递给JQuery中的函数/插件

使用ajax导入JS数组以传递给JQuery中的函数/插件,ajax,arrays,jquery-plugins,jquery,Ajax,Arrays,Jquery Plugins,Jquery,我有一个生成的数组,如果硬编码,它会将数组对象传递给一个函数进行精细处理 例如: $("#termCloud").jQCloud([{text:'some',weight:10},{text:'thing',weight:8}]); 但是,我需要使其更具动态性,因此我将从外部生成数组并使用ajax导入。这就是我正在尝试的: (generateArray.asp将输出{text:'some',weight:10},{text:'thing',weight:8}) 我尝试了几种数据类型,但都失败了

我有一个生成的数组,如果硬编码,它会将数组对象传递给一个函数进行精细处理

例如:

$("#termCloud").jQCloud([{text:'some',weight:10},{text:'thing',weight:8}]);
但是,我需要使其更具动态性,因此我将从外部生成数组并使用ajax导入。这就是我正在尝试的:

(generateArray.asp将输出
{text:'some',weight:10},{text:'thing',weight:8}

我尝试了几种数据类型,但都失败了

问题似乎是,在工作版本中,JQCloud插件以对象的形式接收数组:
[object object],[object object]
,其中我的ajax版本以字符串的形式接收/发送数组:
{text:'some',weight:10},{text:'thing',weight:8}

$.ajax({
    url: '/generateArray.asp',
    success: function(data){
        $("#wordCloud").jQCloud([data]);
    }
})
是否有方法导入数组并将其作为正确的数组而不是字符串传递给JQCloud函数/插件,或者将字符串转换为数组进行处理

非常感谢


回应以下两个答案;我应该指出,返回值似乎没有被识别为有效的JSON数据…

我想您应该在将数据变量发送到插件之前对其进行JSON解析:

var json = JSON.parse(data);
$("#wordCloud").jQCloud([json]);
…或者你可以加上

dataType : 'json'
…在ajax函数调用中设置参数。

尝试:

success: function(data){
        $("#wordCloud").jQCloud([{text: data[0].text, weight: data[0].weight}, {text: data[1].text, weight: data[1].weight}]);
}

响应由$.Ajax()函数自动转换为对象,因为它是一个json字符串。

如果您是指
$.parseJSON(数据)
我尝试过(抱歉,应该这么说)-Firebug报告它是无效的json,但是
数据类型:'json'
失败,不确信返回的是有效的JSON,或者JQuery可以读取它。看起来是这样的。我尝试在Firebug中解析字符串,但它返回了无效的JSON。通过将单引号改为双引号,我得到了正确的结果:var foo=$.parseJSON('[{“text”:“some”,“weight”:10},{“text”:“thing”,“weight”:8}');我不知道,但这里似乎有介绍:太棒了,感谢@Jørgen-我已经恢复到拆分返回字符串并重建数组的状态-这更好:-)非常好,再次感谢…感谢您的回复-我不确定整个JSON字符串,因为以前解析JSON或将数据类型设置为JSON的尝试失败了。确实创建了足够多的对象,但由于未定义值,因此无论如何都会失败。我冒险猜测(对JSON不太了解)返回值不是有效的JSON,或者至少不是JQuery可以破译的