首页 > 解决方案 > DataTables 将源数组包含在 JSON“数据”属性中

问题描述

我正在尝试使用通过 jQuery ajax GET 请求获得的数据创建一个数据表。GET 请求以格式返回所有对象

[{
    "id": "88776",
    "employee_name": "JohnhmO",
    "employee_salary": "13973",
    "employee_age": "19",
    "profile_image": ""
},
{
    "id": "88778",
    "employee_name": "jbmvy",
    "employee_salary": "123",
    "employee_age": "23",
    "profile_image": ""
}]

我需要将源数组包含在 JSON 'data' 属性中,以便数据表可以读取它。

我试过解析成 JSON。我试过unshift。

var dataSet = '';
$.ajax({
    url: 'http://dummy.restapiexample.com/api/v1/employees',
    type: 'GET',
    datatype: 'json'
}).done(function (data) {
    console.log(data);
    dataSet = data;
})
function unshiftFunc(dataSet) {
    dataSet.unshift('data:');
}
console.log(dataSet)

我正在寻找的是这个:

{
    "data": [{
        "id": "88776",
        "employee_name": "JohnhmO",
        "employee_salary": "13973",
        "employee_age": "19",
        "profile_image": ""
    },
    {
        "id": "88778",
        "employee_name": "jbmvy",
        "employee_salary": "123",
        "employee_age": "23",
        "profile_image": ""
    }]
}

标签: javascriptjqueryjsonajaxdatatables

解决方案


您可能意味着将返回的数组放入一个对象中,并以属性 name 为键data。在这种情况下,只需创建一个对象,并将您的数据分配给data属性。

.done(function(data){
   dataSet = { data: data };
})

顺便说一句,console.log(dataSet)将返回,undefined因为$.ajax是异步的。您必须在done的回调中执行此操作才能知道dataSetAJAX 解析后的样子。


推荐阅读