2015-10-08 128 views
2

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

这里是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} 
+0

这有什么用处? [https://datatables.net/forums/discussion/27383/supporting-hateoas](https://datatables.net/forums/discussion/27383/supporting-hateoas) – markpsmith

+0

嘿,谢谢,但这并没有解决它。该数据表不接受使用此方法的HAL + JSON格式。任何转换建议? – Prateek

+0

json是什么样的? – markpsmith

回答

4

SOLUTION

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

使用ajax.dataSrc选项可为表定义数据源,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代码和演示。