如何获取jQuery DataTables的JSON的一部分

时间:2015-05-19 12:54:40

标签: javascript json datatables jquery-datatables

我在jQuery DataTables aaData属性中使用webapi,如下所示:

 "aaData": "http://api.example.com/v1/asdasd/sms/latestoutbox.json?pagesize=1000",

此请求返回一个这样的JSON:

{
"return":
    {"status":200,"message":"Accept"},
"entries":
[
    {"messageid":40859622,"message":"Text1","status":14,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868680,"cost":146},
    {"messageid":40859621,"message":"Text2","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868680,"cost":146},
    {"messageid":40859589,"message":"Text3","status":14,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868620,"cost":146},
    {"messageid":40858860,"message":"Text4","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431867960,"cost":146},
    {"messageid":40858483,"message":"Text5","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431867600,"cost":146}
]
}

但是我只需要将#34;条目"的行传递给我的aaData,如下所示:

    {"messageid":40859622,"message":"Text1","status":14,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868680,"cost":146},
    {"messageid":40859621,"message":"Text2","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868680,"cost":146},
    {"messageid":40859589,"message":"Text3","status":14,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431868620,"cost":146},
    {"messageid":40858860,"message":"Text4","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431867960,"cost":146},
    {"messageid":40858483,"message":"Text5","status":10,"statustext":"Waiting","sender":"300007575","receptor":"0911111111","date":1431867600,"cost":146}

我如何工作

"aaData": "http://api.example.com/v1/asdasd/sms/latestoutbox.json?pagesize=1000",

获取我的必要值?

2 个答案:

答案 0 :(得分:0)

您需要使用sAjaxDataProp(DataTables 1.9)或ajax.dataSrc(DataTables 1.10),以下是手册的摘录:

  

默认情况下,DataTables会在找到属性'aaData'时   从Ajax源获取数据或用于服务器端处理 -   此参数允许更改该属性。您可以使用   Javascript虚线对象表示法获取多个数据源   嵌套水平。

以下是适用于不同DataTables版本的正确初始化代码。

DataTables 1.9.x

$(document).ready(function() {
  var oTable = $('#example').dataTable({
    "sAjaxSource": "http://api.example.com/v1/asdasd/sms/latestoutbox.json?pagesize=1000",
    "sAjaxDataProp": "entries"
  });
});

DataTables 1.10.x

$(document).ready(function() {
  var oTable = $('#example').dataTable({
    "ajax": {
        "url": "http://api.example.com/v1/asdasd/sms/latestoutbox.json?pagesize=1000",
        "dataSrc": "entries"
    }
  });
});

答案 1 :(得分:-1)

function AssignResult() {

    //Call Web API
    var result = { //Get the Result
        "return":
        { "status": 200, "message": "Accept" },
        "entries":
        [
            { "messageid": 40859622, "message": "Text1", "status": 14, "statustext": "Waiting", "sender": "300007575", "receptor": "0911111111", "date": 1431868680, "cost": 146 },
            { "messageid": 40859621, "message": "Text2", "status": 10, "statustext": "Waiting", "sender": "300007575", "receptor": "0911111111", "date": 1431868680, "cost": 146 },
            { "messageid": 40859589, "message": "Text3", "status": 14, "statustext": "Waiting", "sender": "300007575", "receptor": "0911111111", "date": 1431868620, "cost": 146 },
            { "messageid": 40858860, "message": "Text4", "status": 10, "statustext": "Waiting", "sender": "300007575", "receptor": "0911111111", "date": 1431867960, "cost": 146 },
            { "messageid": 40858483, "message": "Text5", "status": 10, "statustext": "Waiting", "sender": "300007575", "receptor": "0911111111", "date": 1431867600, "cost": 146 }
        ]
    };

    var aaData = result.entries; //aaData will have all the entries.

}

希望这有帮助。