Я пытаюсь создать таблицу данных с данными, полученными с помощью 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, чтобы таблицы данных могли его прочитать.

Я пытался разобрать в 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": "" }] } 

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

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

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

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

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

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

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

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