2017-10-19 2 views
2

Je souhaite ajouter des noms à plusieurs objets JSON en même temps.Obtention de valeurs à partir de plusieurs objets JSON

J'ai essayé ceci:

let jdata = fs.readFileSync('participants.json'); 
let json = JSON.parse(jdata); 
jury = ["jury1", "jury2"]; 
for(i=1; i<3; i++){ 
    data = json.jury[i]; 
    console.log(data); 
} 

Mon fichier JSON: { "jury1": [ "NAME1", "nom2", "NAME3" ], "jury2": [ "NAME1", "nom2", "NAME3" ] } Cela me donne une erreur:

  data = json.jurys[i]; 
          ^

TypeError: Impossible de lire la propriété « 1 » undefined

Je ne l'ai pas utilisé JSON avant et je ne suis pas sûr de savoir comment obtenir toutes les valeurs de ces objets. Quelqu'un pourrait-il me dire ce que je fais mal? Merci pour votre temps et votre aide!

+0

Utilisez des crochets comme ceci 'data = JSON [jury [i]];' –

+0

que je connais ce qui est erroné maintenant @ gurvinder372 a expliqué! – Sylent

Répondre

3

TypeError: Cannot read property '1' of undefined

Votre json n'a pas un attribut jury. Par conséquent, json.jury renvoie undefined et, par conséquent, votre erreur.

Make it

for(i=0; i<jury.length; i++) 
{ 
    data = json[jury[i]]; //notice the change here 
    console.log(data); 
} 
+0

Merci beaucoup, j'ai édité la boucle pour qu'elle reçoive les deux objets, mais ça marche maintenant! Je ne peux pas vous remercier assez! – Sylent