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] } );
});
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
Vous devez vous connecter pour publier un commentaire.
Construire un JavaScript structure de données avec les informations requises, puis retourner la chaîne json à la fin.
Basé sur ce que je pense que vous faites, essayez quelque chose comme ceci:
ou quelque chose le long de ces lignes.
OriginalL'auteur Chris Tavares
Vous n'avez pas de JSON. Vous avez un JavaScript structure de données composée d'objets, un tableau, des chaînes et des nombres.
Utilisation
JSON.stringify(object)
d'en faire (une chaîne) texte JSON.Vous essayez de construire votre structure de données en collant ensemble des chaînes représentant JS littéraux. L'utilisation réelle des littéraux.
OriginalL'auteur Quentin
Cela m'a aidé,
OriginalL'auteur Praneesh