如何为JQuery DataTable构建JSON字符串?

时间:2017-07-27 10:04:32

标签: javascript jquery json datatables

我创建了一个使用Ajax Call获取数据并将其填充到数据表UI的代码。

我的代码如下:

jQuery.ajax(
    {
        url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists/GetByTitle('Events')/items?$select=Title,Session_x0020_Room,Session_x0020_Date,StartTime,EndTime,Duties,OnsiteContactEmail",
        type: "GET",
        headers: { "Accept": "application/json;odata=verbose" },
        dataType: "json",                
        success: function (data, textStatus, xhr) {
                if (data.d.results.length > 0) {
                    var resColl = data.d.results;
                    var strData= new Array();
                    for(var i=0; i < resColl.length; i++){
                        var arr = new Array();
                        arr.push(resColl[i].Title);
                        arr.push(resColl[i].Session_x0020_Room);
                        strData[i] = JSON.stringify(arr);
                    }
                    $('#example').DataTable({
                        data:strData,
                        columns: [
                            { title: "Event" },
                            { title: "Room" }
                        ]
                    });
                }                                                               
            },
            error: function (data, textStatus, xhr) {
                console.error("Error while getting the data from Events list");
            }
        }); 

strData对象中,我得到了这个值:&#34; [&#34;亚洲女性在计算机&#34;,&#34;第1和第34室;]&#34;

但是在HTML表中我没有得到正确的输出。

enter image description here

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我假设DataTable期望存在字符串的数组数组。您有一个JSON字符串数组,因为您将数组arr转换为JSON字符串并将其推送到strDataDataTable稍后将使用该字符串。

                var resColl = data.d.results;
                var strData= new Array();
                for(var i=0; i < resColl.length; i++){
                    var arr = new Array();
                    arr.push(resColl[i].Title);
                    arr.push(resColl[i].Session_x0020_Room);
                    strData[i] = arr;
                }

不要将arr转换为JSON字符串,它应该打印正常。