我正在尝试使用通过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。我试过不动。
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": ""
}]
}
答案 0 :(得分:2)
您可能打算将返回的数组放入对象中,并以属性名称data
为键。在这种情况下,只需创建一个对象,然后将数据分配到data
属性中即可。
.done(function(data){
dataSet = { data: data };
})
顺便说一句,console.log(dataSet)
将返回undefined
,因为$.ajax
是异步的。您必须在done
的回调中执行此操作,才能知道AJAX解析后dataSet
的样子。
答案 1 :(得分:1)
如果您使用ajax
选项而不是 external $.ajax()
调用,则可以保持JSON不变,并且仍然可以成功填充DataTables,这可能会导致您遇到各种问题:
$('table').DataTable({
...
ajax: {
url: 'http://dummy.restapiexample.com/api/v1/employees',
type: 'GET',
dataSrc: ''
}
});
选项dataSrc: ''
indicates中,您的源数据是未包含在任何特定属性中的对象数组。
答案 2 :(得分:1)
您始终可以使用Array.concat()
以所需的方式将事物添加在一起。
data = ["data"].concat(data);