2

JSON データを取得するためにヒットしている GET エンドポイントがある Java Web プロジェクトがあります。Firebug は、フォームで JSON データを取得していることを示しています

[{"id":7,"serial":"7bc530","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null},
{"id":8,"serial":"4a18d27","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null},
{"id":9,"serial":"f30ef","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null},
{"id":10,"serial":"9e6d","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null},
{"id":11,"serial":"4d8665a3","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null},
{"id":12,"serial":"4fe1457","randomDouble":0.0,"randomDouble2":0.0,"randomDouble3":0.0,"date":1352228474000,"removed":null}]

HTML側ではこれを持っています、

<table id="table_id">
   <thead>
      <tr>
      <th>id</th>
      <th>serial</th>
      <th>randomDouble</th>
      <th>randomDouble2</th>
      <th>randomDouble3</th>
      <th>date</th>
      <th>removed</th>
      </tr>
</thead>
 <tbody>
</tbody>
</table>

これが私がjavascript側に持っているものです。私は、この形式で機能する別の投稿をここで見つけました。

$(document).ready(function() {

    var Table = $("#table_id").dataTable({
       "bFilter":false,
       "bPaginate":false,
       "bProcessing": true,
       "bServerSide":true,
       "bInfo":false,
       "sAjaxSource": ApiUrl(),
       "fnServerData": function (sSource, aoData, fnCallback){
           $.ajax({
            "dataType": 'json',
               "type": "GET",
               "url": sSource,
               "data": aoData,
               "success": fnCallback
           }); 
       }
    });

テーブルには列が表示されていますが、データが取り込まれていません。先ほど言ったように、JSON データが Firebug を介して Web ページに送信されていることを確認しました。これは、これが行っている GET 要求を介して行われます。

データテーブルは非常に紛らわしく、この JSON を実際に入力することはできません...

どんな援助でも大歓迎です。

編集:

私はこれを試しました、

var Table = $("#table_id").dataTable({
       "bFilter":false,
       "bPaginate":false,
       "bProcessing": true,
       "bServerSide":true,
       "bInfo":false,
       "sAjaxSource": ApiUrl(),
       "sAjaxDataProp": ""
    });
4

2 に答える 2

1

これはサーバー側で機能するはずです。

 var Table = $("#table_id").dataTable({
   "bFilter":false,
   "bPaginate":false,
   "bProcessing": true,
   "bServerSide":true,
   "bInfo":false,
    "aoColumns": [
    { "mData": "id" },
    { "mData": "serial" },
    { "mData": "randomDouble" },
    { "mData": "randomDouble2" },
    { "mData": "randomDouble3" },
    { "mData": "date" },
    { "mData": "removed" }

    ],
   "sAjaxSource": "url",
   "fnServerData": function ( sSource, aoData, fnCallback ) {
    $.getJSON( sSource, aoData, function (json) { 
        map = {}
        map["aaData"] = json
        fnCallback(map)
    } );
}
});

最後のコメントに関する更新:

"fnServerData": function ( sSource, aoData, fnCallback ) {
  $.getJSON( sSource, aoData, function (json) { 
        $.getJSON('second_json_url', function(secondjson) {
            $.each(secondjson, function(index, object) {
              json[index].serial = secondjson[index].name
            })
            map = {}
            map["aaData"] = json
            fnCallback(map)
        })
  });
}
于 2012-11-06T21:25:37.460 に答える
1

任意のデータ ソースから読み取ることができます。以下のドキュメントを確認してください (ここにあります)。これは、サーバー側の処理と ajax データ ソースで機能します。

さらに、sAjaxDataProp を空の文字列に設定することもできます。これにより、DataTables は、指定されたデータ ソースを (オブジェクトのプロパティとしてではなく) テーブル データ配列として扱います。

于 2012-11-06T20:29:36.893 に答える