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

时间:2011-08-10 11:15:49

标签: 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}

$.ajax({
    url: '/generateArray.asp',
    success: function(data){
        $("#wordCloud").jQCloud([data]);
    }
})

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

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

有没有办法导入数组并将其作为正确的数组而不是字符串传递给JQCloud函数/插件,或者将字符串转换为数组进行处理?

非常感谢..

重新回答以下两个答案;我应该指出,返回似乎并未被识别为有效的JSON数据......

2 个答案:

答案 0 :(得分:0)

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

var json = JSON.parse(data);
$("#wordCloud").jQCloud([json]);

...或者您可以添加

dataType : 'json'

...到ajax函数调用中的settings参数。

答案 1 :(得分:0)

尝试:

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

响应由$ .Ajax()函数自动转换为Objects,因为它是一个json-string。