148 votes

Écriture d'un objet JSON dans un fichier JSON avec fs.writeFileSync

J'essaie d'écrire un objet JSON dans un fichier JSON. Le code s'exécute sans erreur, mais au lieu d'écrire l'objet lui-même, tout ce qui est écrit dans le fichier JSON est:

 [object Object]
 

C'est le code qui écrit réellement:

 fs.writeFileSync('../data/phraseFreqs.json', output)
 

'output' est un objet JSON et le fichier existe déjà. S'il vous plaît laissez-moi savoir si plus d'informations sont nécessaires.

220voto

Kamal Points 1249

Vous devez stringifier l'objet.

 fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));
 

54voto

akinjide Points 1743

Je ne pense pas que vous devez utiliser Synchronous est la bonne, Asynchronously de l'écriture de données dans un fichier est mieux aussi stringify l' output un object.

Remarque: Si output est une chaîne de caractères, puis spécifier l'encodage et n'oubliez pas l' flag options.:

const fs = require('fs');
const content = JSON.stringify(output);

fs.writeFile('/tmp/phraseFreqs.json', content, 'utf8', function (err) {
    if (err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 

Ajouté méthode Synchrone de l'écriture de données dans un fichier, mais s'il vous plaît examiner votre cas d'utilisation. Asynchrone vs exécution synchrone, ce que cela signifie vraiment?

const fs = require('fs');
const content = JSON.stringify(output);

fs.writeFileSync('/tmp/phraseFreqs.json', content);

38voto

Timelot Points 301

rendre json lisible avec:

fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));

1voto

Gaz Points 126

Lors de l'envoi de données à un serveur Web, les données doivent être une chaîne ( ici ). Vous pouvez convertir un objet JavaScript en une chaîne avec JSON.stringify() . Voici un exemple de travail:

 var fs = require('fs');

var originalNote = {
  title: 'Meeting',
  description: 'Meeting John Doe at 10:30 am'
};

var originalNoteString = JSON.stringify(originalNote);

fs.writeFileSync('notes.json', originalNoteString);

var noteString = fs.readFileSync('notes.json');

var note = JSON.parse(noteString);

console.log(`TITLE: ${note.title} DESCRIPTION: ${note.description}`);
 

J'espère que ça pourrait aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X