Création d'un Tableau JSON dans node js

J'ai besoin de créer dans mon serveur écrit en node js une chaîne JSON pour être envoyé au client lors de la demande. Le problème est que cette JSON repose sur les données disponibles dans le serveur, ainsi, la taille du tableau JSON n'est pas le même pour toujours. Ive a essayé toute la journée, mais bien que j'ai l'impression d'être close, je l'ai toujours pas l'obtenir.

Un exemple de requête suit:

json={"players":[
            {"name":"Messi", "goals":8},            
            {"name":"Ronaldo", "goals":22},
            {"name":"Costa", "goals":20},
            {"name":"Neymar", "goals":13},
            {"name":"Arabi", "goals":6},
            {"name":"Bale", "goals":3},
            {"name":"Toquero", "goals":0}]};

Je voudrais l'envoyer au serveur par:

res.contentType('application/json');
res.send(json);

Le tableau JSON que je veux créer, il dépend d'un hachage appelés "objectifs" où un nom de joueur est la clé et un certain nombre d'objectifs de la valeur. Ainsi, s'il y a seulement 3 joueurs, le Tableau JSON seulement devrait avoir cette taille.

Ive essayé de créer le tableau JSON en ligne comme ceci:

result= "";
for(i in goals){
    result = result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}
result= result.substring(0, result.length - 1); 
res.contentType('application/json');
res.send( { 'players': [ result]});

Toutefois, le client ne reçoit qu'une json de taille 1

Object {jugadores: Array[1]}

jugadores: Tableau[1]
0: "{ nombre:Messi, goles:8},{ nombre:Ronaldo, goles:16},{ nombre:Costa, goles:10},{ nombre:Toquero, goles:0},{ nombre:Arabi, goles:2},{ nombre:Bale, goles:10},{ nombre:Neymar, goles:8}"
longueur: 1

Merci d'avance, Im vraiment du mal avec ceci 🙁

Edit: j'essaie maintenant avec filant le faire, mais pas de chance. Que dois-je faire de mal?

result= "players:[";
for(i in goals){
    result= result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}

result= result.substring(0, resultado.length - 1);  
result= result + ']'

res.contentType('application/json');
myJSONstring = JSON.stringify(resultado);
res.send(myJSONstring);

Objectifs de hachage est rempli à l'aide de GET:

app.get('/player/:id', function (req, res) {   
res.contentType('application/json');
res.send( {'goals': + goals[req.params.id] } );

});

utiliser res.envoyer(JSON.stringify(les joueurs)) et de se débarrasser de la boucle et de la variable résultat.
comment? Je veux dire, si je me débarrasser de la boucle je n'ai pas à obtenir l'information que je veux envoyer.
pouvez-vous montrer la partie de votre code lorsque vous définissez la valeur de goals
double possible de Convertir en objet JS à la chaîne JSON
Vous êtes censé passer un objet ou un tableau à JSON.stringify, pas une chaîne de caractères.

OriginalL'auteur Rafag | 2013-12-08

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *