Próbuję napisać obiekt JSON do pliku JSON. Kod jest wykonywany bez błędów, ale zamiast zapisania treści obiektu, do pliku JSON zostaje zapisany tylko:
[object Object]
Oto kod, który faktycznie pisze:
fs.writeFileSync('../data/phraseFreqs.json', output)
„Wyjście” to obiekt JSON, a plik już istnieje. Daj mi znać, jeśli potrzebujesz więcej informacji.
Odpowiedzi:
Musisz zdefiniować obiekt.
źródło
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output, null, 2));
Więcej: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ ...Nie sądzę, abyś używał podejścia synchronicznego, asynchroniczne zapisywanie danych do pliku jest lepsze również w
output
przypadku, gdy jest to plikobject
.Uwaga: jeśli
output
jest ciągiem, określ kodowanie i zapamiętaj równieżflag
opcje .:Dodano synchroniczną metodę zapisu danych do pliku, ale prosimy o rozważenie swojego przypadku użycia. Co tak naprawdę oznacza wykonywanie asynchroniczne i synchroniczne?
źródło
Uczyń json czytelnym dla człowieka, przekazując trzeci argument do
stringify
:źródło
Podczas wysyłania danych do serwera WWW dane muszą być ciągiem znaków ( tutaj ). Możesz przekonwertować obiekt JavaScript na ciąg za pomocą
JSON.stringify()
. Oto działający przykład:Mam nadzieję, że to pomoże.
źródło
Oto odmiana
fs
wykorzystująca obietnice:źródło