Ajax不返回JSON而是返回一个对象

时间:2013-12-11 12:35:13

标签: json wcf jquery slickgrid

我想将数据从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)。

如何将对象(结果)转换为数据之类的数组结构? enter image description here

3 个答案:

答案 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); 
}