Estou tentando escrever um objeto JSON em um arquivo JSON. O código é executado sem erros, mas em vez do conteúdo do objeto que foi escrito, tudo o que é escrito no arquivo JSON é:
[object Object]
Este é o código que realmente faz a escrita:
fs.writeFileSync('../data/phraseFreqs.json', output)
'output' é um objeto JSON e o arquivo já existe. Por favor, me avise se mais informações forem necessárias.
Respostas:
Você precisa restringir o objeto.
fonte
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output, null, 2));
Mais: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Eu não acho que você deva usar a abordagem síncrona, gravar dados de forma assíncrona em um arquivo é melhor também stringify
output
se for umobject
.Observação: se
output
for uma string, especifique a codificação e lembre-se dasflag
opções também:Método síncrono adicionado para gravar dados em um arquivo, mas considere seu caso de uso. Execução assíncrona vs síncrona, o que isso realmente significa?
fonte
Torne o json humano legível passando um terceiro argumento para
stringify
:fonte
Ao enviar dados para um servidor web, os dados devem ser uma string ( aqui ). Você pode converter um objeto JavaScript em uma string com
JSON.stringify()
. Aqui está um exemplo prático:Espero que possa ajudar.
fonte
Aqui está uma variação, usando a versão
fs
que usa promessas:fonte