J'essaye d'écrire un objet JSON dans un fichier JSON. Le code s'exécute sans erreur, mais au lieu que le contenu de l'objet ait été écrit, tout ce qui est écrit dans le fichier JSON est:
[object Object]
C'est le code qui fait réellement l'écriture:
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.
Réponses:
Vous devez stringifier l'objet.
la source
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output, null, 2));
Plus: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Je ne pense pas que vous devriez utiliser l'approche synchrone, l'écriture asynchrone de données dans un fichier est préférable également de stringifier le
output
si c'est unobject
.Remarque: Si
output
est une chaîne, spécifiez l'encodage et rappelez-vous également lesflag
options:Ajout de la méthode synchrone d'écriture de données dans un fichier, mais veuillez considérer votre cas d'utilisation. Exécution asynchrone ou synchrone, qu'est-ce que cela signifie vraiment?
la source
Rendez le json lisible par l'homme en passant un troisième argument à
stringify
:la source
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 chaîne avec
JSON.stringify()
. Voici un exemple de travail:J'espère que cela pourrait aider.
la source
Voici une variante, en utilisant la version de
fs
qui utilise des promesses:la source