如何将 HAL JSON 数据转换为 JSON 数组以用于 jQuery DataTables

How do I convert HAL JSON data into JSON array for jQuery DataTables

我需要 JSON 数组格式的输出数据以与 jQuery DataTables 一起使用,但我的 API 来自 Apigility 提供 HAL+JSON。我如何转换它以便我可以将它从 API 的 fetchAll 方法传递给 Datatables 的 AJAX URL?

这是 HAL+JSON 的样子:

{"_links":{"self":{"href":"http:\/\/parekh.com\/exportmanager\/courses"}},"_embedded":{"courses":[{"Module Title":"Preventing Harassment","Module ID":"HUR602","Module Language":"English"},{"Module Title":"Conflict","Module ID":"COM236","Module Language":"Dutch"},{"Module Title":"Workplace","Module ID":"HUR711","Module Language":"Dutch"}]},"total_items":3}

SOLUTION

无需转换数据格式,jQuery DataTables 在使用正确的选项时能够读取复杂的结构。

使用ajax.dataSrc option to define data source for the table and columns.data选项为每列设置数据源。

var table = $('#example').DataTable({
    ajax: {
        url: 'https://api.myjson.com/bins/3ebaq',
        dataSrc: '_embedded.courses'
    },
    columns: [
        { data: 'Module Title' },
        { data: 'Module ID' },
        { data: 'Module Language' }
    ]
});

DEMO

有关代码和演示,请参阅 this jsFiddle