2015-10-15 51 views
1

我有一個Javascript對象,我通過迭代來更改它。我想將它保存爲JSON對象。但是,我如何獲得新的對象?如果我console.log它有兩個問題:首先,它可能太長的控制檯。其次,控制檯刪除鍵的字符串。操縱JSON數據後,我怎麼看到它?

處理這個問題的最佳方法是什麼?

我想得到這個JSON並將其複製到另一個文件中。我已經使用FS嘗試:

var fs = require('fs'); 
fs.writeFile("data/datafile.json", dataObject, function(err) { 
    if(err) { 
     return console.log(err); 
    } 

    console.log("The file was saved!"); 
}); 

,但它只是寫這給datafile.json文件:

[目標對象],[目標對象],[目標對象],[目標對象], [object object],[object object],[object Object],[object Object],[object Object]

任何想法或最佳實踐?

+1

請讓您的描述更清晰。首先,JSON是一個字符串,所以你不能像你說的那樣遍歷它。 –

+0

閱讀手冊,教程和幫助部分被認爲是最佳做法。你應該從[ask]開始,然後轉到[here](https://nodejs.org/api/fs.html#fs_fs_writefile_filename_data_options_callback),然後考慮你使用'dataObject'的值是否與期望的輸入相匹配(我的錢是在: 「不匹配」) – Amit

+0

要麼記錄錯誤並返回false,要麼返回錯誤本身,但對返回console.log()的結果沒有興趣。 –

回答

2

您應該使用JSON sringify選項:

//Replace 
fs.writeFile("data/datafile.json", dataObject, function(err)... 

//with: 
fs.writeFile("data/datafile.json", JSON.stringify(dataObject), function(err)... 

如果你只是做克隆,您可以使用以下方法之一: What is the most efficient way to deep clone an object in JavaScript?

如果你只想查看它,你可以console.log將字符串化的JSON複製粘貼到在線json查看器中。 (如果它太大,您可以像保存文件一樣保存文件並將文件上傳到在線查看器)