我想将数据从WCF加载到网格(SlickGrid)。如果我手动创建一个Json并将其加载到网格中,此代码可以正常工作。但是,如果我使用从Jquery获得的变量 - ajax,我会得到一个数组的对象。
如果我运行以下代码。
$(function () {
$.ajax({
url: "DataService.svc/DoWork",
type: "POST",
contentType: "application/json",
dataType: 'JSON',
success: loadData,
error: showError
});
});
function loadData(result) {
var data = [];
data[0] = {
BO: "Task ",
Agreement: "5 days"
};
console.log(data);
console.log(result);
grid = new Slick.Grid("#myGrid", data, columns, options);
}
我有2个控制台日志。第一个日志是我制作的Json。第二个是Json Ajax的回归。 Chrome告诉我这是一个对象而不是数组(Json)。
如何将对象(结果)转换为数据之类的数组结构?
答案 0 :(得分:1)
尝试换行:
var data = [];
为:
var data = new Array();
内部函数loadData
答案 1 :(得分:1)
var data = [];
for(var i in result) {
data.push(result[i]);
}
(如果D不够)
答案 2 :(得分:0)
我通过在结果后添加.d来解决它。这将返回SlickGrid的正确对象。
function loadData(result) {
grid = new Slick.Grid("#myGrid", result.d, columns, options);
}