DataTables заключают исходный массив в свойство JSON 'data' - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь создать таблицу данных с данными, полученными с помощью GET-запроса jQuery ajax.Запрос 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": ""
    }]
}

Ответы [ 3 ]

2 голосов
/ 08 июля 2019

Возможно, вы имели в виду помещение возвращенного массива в объект, имеющий имя свойства data. В этом случае просто создайте объект и присвойте свои данные свойству data.

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

Кстати, console.log(dataSet) вернет undefined, поскольку $.ajax является асинхронным. Вам нужно будет сделать это внутри обратного вызова done, чтобы узнать, как выглядит dataSet после разрешения AJAX.

1 голос
/ 09 июля 2019

Вы всегда можете использовать Array.concat(), чтобы складывать вещи по своему усмотрению.

data = ["data"].concat(data);

1 голос
/ 09 июля 2019

Вы можете сохранить свой JSON как есть и по-прежнему успешно заполнять DataTables, если вы используете опцию ajax вместо внешний $.ajax() вызов, который может привести к возникновению различных проблем. :

$('table').DataTable({
   ...
   ajax: {
      url: 'http://dummy.restapiexample.com/api/v1/employees',
      type: 'GET',
      dataSrc: ''
   }
});

Параметр dataSrc: '' указывает , что ваши исходные данные - это массив объектов, не заключенных в какое-либо конкретное свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...