2011-10-03 116 views
17

Tengo un conjunto de datos JSON local. Quiero usar el plugin jquery datatable para mostrarlo. ¿Hay algún ajuste o configuración dentro del complemento datatable para mostrar los datos? Todo lo que puedo encontrar es hacer llamadas AJAX y llamadas al servidor.cómo cargar la variable JSON local utilizando jquery datatable

Gracias por la ayuda.

+1

¿Alguna vez resolver esto? También me gustaría inicializar con una matriz local de objetos pasados ​​a aData. Veo que uno entendió tu pregunta. Lo probé con las propiedades de mData de la forma en que lo haría con un conjunto de datos del lado del servidor, pero no funcionó. – Rabbi

Respuesta

17

Puede suministrar tablas de datos con datos de 4 formas diferentes

En su caso, querrá usar la segunda opción (Arreglo de Javascript). Tendrá que ser capaz de traducir la forma de su objeto JSON en objetos de una matriz.

He aquí un ejemplo

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

Creo que el signo igual después de BrowserStats debería ser un punto y el problema debería eliminar la coma final después de la tercera fila. Gracias por tu respuesta. – Upperstage

+0

Hecho y hecho. Buena captura – jessegavin

+0

respuesta increíble !! – ufk

1

Usted puede establecer el parámetro AjaxSource que apunta a su conjunto de datos:

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

Esto cargará todos los datos una vez y colocarlos en el DataTable. Ver más detalles en el http://www.datatables.net/examples/data_sources/ajax.html.

Jovan

0

opción Usar data a facilitar los datos de una tabla.

Por ejemplo:

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 
}); 

Si los datos son una cadena en formato JSON, es posible que desee analizar en primer lugar, ya sea con o $.parseJSON()JSON.parse().

Consulte this jsFiddle para obtener el código y la demostración.

0

Resolver el problema con el jessegavinanswer:

$(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/

Cuestiones relacionadas