Je développe une application Web et j’utilise jQuery 1.5 et JavaScript pour les fonctionnalités principales de l’application. Je me connecte depuis mon application à une interface RESTful où je récupère des informations pour une personne. J’utilise cette fonction pour récupérer les informations de la page json:
var jqxhr = $.getJSON("example.json", function() { // store the data in a table }
Mes données au format json sont du type mais je vais avoir comme résultat plus d’une personne ayant le format de:
[{"person":{"time":"2010-02-18T17:59:44","id":1,"name": "John","age":60, "updated_at":"010-02-18T17:59:44"}}]
Comment puis-je stocker uniquement l’identifiant, le nom et l’âge de la personne dans une table JavaScript (pour être plus précis un tableau) et ignorer le rest des informations?
$.getJSON("example.json", function(data) { var name = data.person.name; var id = data.person.id; var age = data.person.age; }
qu’est-ce que cela signifie exactement par une table javascript u peut stocker dans une table html par
var $table = $(" name "+name+" id "+id+" age "+age+"
");
Voici le code JavaScript / jQuery dont vous avez besoin, basé sur la fonction MAP.
var originalData = [ { "person": { "time": "2010-02-18T17:59:34", "id": 1, "name": "John", "age": 60, "updated_at": "010-02-18T17:59:41"} }, { "person": { "time": "2010-02-18T17:59:44", "id": 2, "name": "Bob", "age": 50, "updated_at": "010-02-18T17:59:42"} }, { "person": { "time": "2010-02-18T17:59:54", "id": 3, "name": "Sam", "age": 40, "updated_at": "010-02-18T17:59:43"} } ]; var data = $.map(originalData, function (ele) { return { id: ele.person.id, name: ele.person.name, age: ele.person.age }; });
Voici un exemple complet qui convertira et affichera les résultats en HTML.
Vous pouvez utiliser la fonction map
de jQuery:
var data = $.map(originalData, function(person) { return { id: person.id, name: person.name, age: person.age }; });
map
convertit fondamentalement chaque élément dans un Array
, produisant un nouveau Array
avec les objects modifiés.