2015-07-19 128 views
1

我想從節點中的JSON文件中刪除字段。假設我的文件看起來像這樣從節點中的JSON文件中刪除字段

{ 
    'name': John Doe, 
    'nickname': Johnny 
} 

,如果我說delete('nickname');我希望它看起來是這樣的。

{ 
    'name': John Doe 
} 

我應該怎麼做呢?還有一種方法可以檢查文件中有多少元素?如果是這樣,我怎麼能刪除整個文件,如果它是空的?

更新:這是我調試

var data = require(pathToFile); 
      var element = data[deleteKey]; 
      delete element; 
      fs.writeFileSync(pathToFile, JSON.stringify(data, null, 4), 'utf8'); 
      res.end(deleteKey + ' was deleted'); 
      console.log(JSON.stringify(data, null, 4)); 
+0

'var element = data [deleteKey];刪除元素;'應該'刪除數據[deleteKey];' –

+0

是的,這只是爲了調試目的。但沒有辦法工作哈哈 –

回答

3

要檢查多少元素都留在了JSON文件,您可以使用此:

Object.keys(jsonArray).length; 

但是要刪除一個元素:

var json = 
{ 
'name': John Doe, 
'nickname': Johnny 
} 
var key = "name"; 
delete json[key]; 

至於刪除文件,您可以使用ajax並調用服務器端文件來完成此操作。

2

您可以直接刪除它的代碼...

var myObj = { 'name': 'John Doe', 'nickname': 'Johnny'}; 
delete myObj.nickname; 

OR

var myObj = { 'name': 'John Doe', 'nickname': 'Johnny' }; 
delete myObj["nickname"]; 

輸出

{name: "John Doe"} 
+0

其文件!我試過「myObj = require('myjsonfile.json')」,然後「刪除myObj [key]」,但它沒有工作 –

+0

所以將文件的內容讀入一個變量,然後你可以使用上面的代碼(你也應該更新你的問題,以反映你試圖解決問題的具體代碼。) – mwilson

+0

是不是我在上述評論中做的?它不起作用 –