Créer une table à partir d'objet JSON en JavaScript
Je suis en train de créer un tableau HTML avec des informations j'utilise pour dessiner un tracé.
Je ne veux pas de requête de la base de données deux fois, et je veux créer le graphique et un tableau avec les informations.
C'est ce que je l'obtenir à partir du serveur et que ça devient de tracé:
var data = {
"selector":"#charttotalday",
"jsondata":[
{
"label":"Client1",
"data":[
[1382670000000,110157],
[1382756400000,199055],
[1382842800000,362996],
[1382929200000,302],
[1383015600000,169],
[1383102000000,88],
[1383188400000,49]
],
"points":{
"fillColor":"#88bbc8"
}
},
{
"label":"Client2",
"data":[
[1382670000000,58611],
[1382756400000,112268],
[1382842800000,193060],
[1382929200000,115],
[1383015600000,45],
[1383102000000,65],
[1383188400000,18]
],
"points":{
"fillColor":"#ed7a53"
}
},
{
"label":"Client3",
"data":[
[1382670000000,65534],
[1382756400000,118362],
[1382842800000,200058],
[1382929200000,123],
[1383015600000,65],
[1383102000000,53],
[1383188400000,26]
],
"points":{
"fillColor":"#9FC569"
}
}
]
};
En raison de la façon dont l'information est organisée, je ne peux pas utiliser $.chaque boucle et créer un tableau de la forme:
Client1 Client2 Client3
1382670000000 | 10157 | 58611 | 65534 |
1382756400000 | 99055 | 12268 | 18362 |
1382842800000 | 62996 | 93060 | 10058 |
1382929200000 | 302 | 115 | 123 |
1383015600000 | 169 | 45 | 65 |
1383102000000 | 88 | 65 | 53 |
1383188400000 | 49 | 18 | 26 |
Je pense que le meilleur moyen serait de lire l'objet et en créer un nouveau avec la structure que j'ai besoin, qui peut être utilisé avec $.chaque.
J'ai essayé avec ceci:
$.each(data.jsondata, function(key, value) {
thead += '<th>' + value.label + '</th>';
tableData[value.label] = new Object();
$.each(value.data, function(key1, value1) {
$.each(value1, function(key2, value2) {
if(key2 == 0) {
//here I have the time line, axis Y
index = value2;
}
if(key2 == 1) {
//here I have the values for the table
tableData[value.label][index] = value2;
}
});
});
});
thead += '</tr>';
Mais cela ne crée plus simple élément avec les informations que j'ai besoin, mais encore ne peut pas tourner dans ce dont j'ai besoin.
Quelqu'un peut-il svp me pointer dans la bonne direction?
Pourquoi ne voulez-vous pas que la transformation de données.jsondata dans une bonne structure de tableau avant de l'utiliser $.chaque
J'ai les données de formaté la façon flot des besoins, mais n'est pas correctement organisé à utiliser facilement utilisé pour créer une table.
comment dois-je faire? Je veux le faire, je ne sais pas comment. merci.
OriginalL'auteur Don Viegues | 2013-10-31
Vous devez vous connecter pour publier un commentaire.
Ce sera la carte de vos données à la table:
DÉMO
seule question sera si la date de chacun de ne pas avoir une entrée pour chaque client...n'ai pas testé ce scénario , essentiellement tableau pour cette ligne aura la valeur null ou les élément(s) en son sein. Va encore organiser de vrais dates correctement je pense
Oui, vous avez raison. La seule solution que je vois est de faire une boucle sur toutes les dates et créer une liste et l'utiliser comme index. Je ne pense pas que je peux le compléter lors de la requête sql.
vous ne savez pas ce que vous cherchez dans ce chapitre... un simple test de commenter quelques entrées dans le tableau d'origine semble fonctionner OK dans mon démo...cellule est vide. Si besoin de quelque chose d'imprimé...pouvez faire une boucle sur chaque ligne de tableau et de mettre un espace réservé comme "aucun" ou que ce soit
Sur mon démo, ils se déplacent vers la gauche, car la disparition de l'TDs, avez-vous un vide à la gauche? Le mien n'en sommes qu'au droit. Merci encore une fois.
OriginalL'auteur charlietfl