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
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.
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/
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 */
});
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
You can supply DataTables with data 4 different ways
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"}
]
});