我有一个生成的数组,如果硬编码将数组对象传递给函数以便处理好。
例如:
$("#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数据......
答案 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。