how to load the local JSON variable using jquery datatable

前端 未结 5 1148
醉话见心
醉话见心 2020-12-28 08:09

I have a local JSON dataset. I want to use jquery datatable plugin to display it. Is there any setting or configuration inside datatable plugin to display data? All I can fi

相关标签:
5条回答
  • 2020-12-28 08:37

    Use data option to supply data for a table.

    For example:

    var table_data = [
        [ "Tiger Nixon", "System Architect", "$3,120", "2011/04/25", "Edinburgh", 5421 ],
        [ "Garrett Winters", "Director", "$8,422", "2011/07/25", "Edinburgh", 8422 ]
    ];
    
    $('#example').DataTable( {
        data: table_data
    } );
    

    If your data is a string in JSON format, you may want to parse it first with either $.parseJSON() or JSON.parse().

    See this jsFiddle for code and demonstration.

    0 讨论(0)
  • 2020-12-28 08:45

    Solving the problem with the jessegavin answer:

    $(document).ready(function (){
    
    var json = {
      BrowserStats : [
        { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 },
        { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 },
        { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 }
      ]
    };
    
    var data = jQuery.map(json.BrowserStats, function(el, i) {
      return [[el.engine, el.browser, el.platform, el.version]];
    });
    
    $('#example').dataTable( {
      "aaData": data,
      "aoColumns": [
        { "sTitle": "Engine" },
        { "sTitle": "Browser" },
        { "sTitle": "Platform" },
        { "sTitle": "Version"}
      ]
     });
    });
    

    https://jsfiddle.net/byejn8ye/

    0 讨论(0)
  • 2020-12-28 08:52

    You can get your json local file doing a normal ajax call, with some caveats (see http://en.wikipedia.org/wiki/Same_origin_policy, or jQuery's .getJSON using local files stopped working on Firefox 3.6.13, fwiw)

    But it should definitely be possible to do:

    $.getJSON('page.json', function(data) {
        /* do something with each item in data */
    });
    
    0 讨论(0)
  • 2020-12-28 08:56

    You can set the AjaxSource parameter that points to your DataSet:

    $('#example').dataTable( {
        "sAjaxSource": 'dataset.json'
    } );
    

    This will load all data once and place them into the DataTable. See more details on the http://www.datatables.net/examples/data_sources/ajax.html.

    Jovan

    0 讨论(0)
  • 2020-12-28 08:57

    You can supply DataTables with data 4 different ways

    • DOM
    • Javascript array
    • Ajax source
    • Server side processing

    In your situation, you will want to use the second (Javascript Array) option. You will need to be able to translate the shape of your JSON object into an array objects.

    Here's an example

    var json = {
      BrowserStats : [
        { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 },
        { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 },
        { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 }
      ]
    };
    
    var data = jQuery.map(json.BrowserStats, function(el, i) {
      return new [el.engine, el.browser, el.platform, el.version];
    });
    
    $('#example').dataTable( {
      "aaData": data,
      "aoColumns": [
        { "sTitle": "Engine" },
        { "sTitle": "Browser" },
        { "sTitle": "Platform" },
        { "sTitle": "Version"}
      ]
    });
    
    0 讨论(0)
提交回复
热议问题