2015-07-19 135 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

是不是我在上述评论中做的?它不起作用 –