web-dev-qa-db-fra.com

Comment puis-je parcourir un tableau d'objets JSON?

J'ai des données JSON que je dois parcourir. Les données sont dans un fichier intitulé "people.json" qui est structuré comme indiqué ci-dessous:

[{"firstname":"John","lastname":"Smith","age":"40"},{"firstname":"Bill","lastname":"Jones","age":"40"}, ...]

Je veux lire chaque objet de ce fichier et l'enregistrer (j'utilise Mongoose). Voici ce que j'ai jusqu'à présent:

var fs = require('fs');
var Person = require('../models/people');

fs.readFile('./people.json', 'utf8', function (err,data) {
    var i;
    for(i = 0; i < data.length; i++) {
        var newPerson = new Person();
        newPerson.firstname = data[i].firstname;
        newPerson.lastname = data[i].lastname;
        newPerson.age = data[i].age;
        newPerson.save(function (err) {});
    }
});

Je ne parviens pas à faire en sorte que cela fonctionne. Qu'est-ce que je fais mal?

13
Chris Paterson
fs.readFile('./people.json', 'utf8', function (err,data) {
  data = JSON.parse(data); // you missed that...
  for(var i = 0; i < data.length; i++) {
    var newPerson = new Person();
    newPerson.firstname = data[i].firstname;
    newPerson.lastname = data[i].lastname;
    newPerson.age = data[i].age;
    newPerson.save(function (err) {});
  }
});
31
Ibrahim

ES6 for..of peut le faire aussi.

fs.readFile('./people.json', 'utf8', function (err,data) {
  for(var item of data) {
     console.log('item: ', [item.firstname, ...]);
  }
});
10
hedzr