一個JSON文件,我想寫一個JSON對象的JSON文件。該代碼的執行沒有錯誤,但不是那個被寫進JSON文件本身被寫入的對象,都是:寫作JSON對象與fs.writeFileSync
[object Object]
這是實際執行的寫代碼:
fs.writeFileSync('../data/phraseFreqs.json', output)
「輸出'是一個JSON對象,並且該文件已經存在。請讓我知道是否需要更多信息。
一個JSON文件,我想寫一個JSON對象的JSON文件。該代碼的執行沒有錯誤,但不是那個被寫進JSON文件本身被寫入的對象,都是:寫作JSON對象與fs.writeFileSync
[object Object]
這是實際執行的寫代碼:
fs.writeFileSync('../data/phraseFreqs.json', output)
「輸出'是一個JSON對象,並且該文件已經存在。請讓我知道是否需要更多信息。
我不認爲你應該使用Synchronous
是好的,Asynchronously
將數據寫入文件也較好字符串化的output
如果一個object
。
注意:如果output
是一個字符串,然後指定編碼。並記住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!");
});
如果是在一個簡短的腳本或其他東西,同步是好的。如果它是服務器請求的一部分,那麼它應該是異步的。 –
不一定,I/O密集型進程應異步發,但根據短劇本的複雜性,你可能會選擇在同步。 – akinjide
這不是問題的答案。 –
您需要將對象串聯起來。
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));
歡迎來到SO,在回答問題之前,請嘗試查看現有答案。如果你的答案已經被提出,請改爲提供答案。請參閱[社區指南](https://stackoverflow.com/help/how-to-answer)撰寫一個好的答案。 – LightBender
我想補充到akinjide的回答。
我相信,你可能有疑惑了這一點,因爲,執行console.log(JSON_OBJECT)將打印JSON字符串到控制檯。但是,當你將其寫入文件時,它確實寫入[object Object]
。這是因爲,console.log(object)會在將JSON對象實際寫入控制檯之前將其隱式轉換爲字符串,而FS.writeFile()則不會。希望這有助於你的理解。
使JSON人類可讀具有:
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));
fs.writeFileSync( '../數據/ phraseFreqs.json',JSON.stringify(輸出)) – Daniel