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, 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.
Vous devez stringifier l'objet.
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));
Je ne pense pas que vous devriez utiliser Synchronous
c'est bien, Asynchronously
écrire des données dans un fichier vaut mieux aussi stringifier la output
si c'est une object
.
Remarque: Si output
est une chaîne, spécifiez le codage et mémorisez les options flag
:
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 de la méthode synchrone pour écrire des données dans un fichier, mais veuillez considérer votre cas d'utilisation. Exécution asynchrone vs synchrone, qu'est-ce que cela signifie vraiment?
const fs = require('fs');
const content = JSON.stringify(output);
fs.writeFileSync('/tmp/phraseFreqs.json', content);
rendre json lisible avec:
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));
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()
. Ici est 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.