Во-первых, вам необходимо установить параметр DataTables ajax
соответственно:
$('#mytable').DataTable({
ajax: {
...
url: '/getdata' //URL to API that returns your JSON data
}
});
Далее вам нужно «сгладить» исходную структуру JSON, чтобы она содержала массив объектов, каждое свойство которых соответствует столбцу таблицы. Для этого вам может понадобиться опция ajax.dataSrc
(для постобработки полученного JSON):
$('#mytable').DataTable({
ajax: {
url: '/getdata',
dataSrc: rawJson => rawJson.map(entry => {
entry.VNF.forEach((vnfEntry, vnfEntryIndex) => Object.entries(vnfEntry).forEach(vnfEntryProp => entry[vnfEntryProp[0] + vnfEntryIndex] = vnfEntryProp[1]));
delete entry.VNF;
return entry;
})
}
});
И, наконец, вы можете отключить предупреждение DataTables, информирующее вас о пропущенных данных для определенных столбцов (так как у вас разное количество поставщиков NFV для разных операторов):
$.fn.dataTable.ext.errMode = 'none';
Но вы должны быть осторожны с этой опцией, поскольку она подавит все уведомления об ошибках из движка DataTables.
Для полноценной демоверсии вы можете проверить эту ссылку .