将文件写入JSON时删除属性

时间:2016-12-22 22:45:17

标签: javascript angularjs json node.js api

我已经从API中请求了数据,该API以JSON格式返回,然后写入存储在Web服务器上的JSON文件。然后,我使用Angular.js将已存储的JSON文件中的过滤内容显示到网页。

我用来将API响应写入文件的NodeJS代码如下:

var doNotStringify = {
  currentTarget: true,
  delegateTarget: true,
  originalEvent: true,
  target: true,
  toElement: true,
  view : true,
  count : true,
  message : true,
  error : true,
}

tl.employees.all(function(response){
 fs.writeFile(file, JSON.stringify(response, function(key, value) {
    var result = value;
    if(doNotStringify.hasOwnProperty(key)) {
        result = undefined;
    }
    return result;
 }, 4));
});
除了'数据&#39>之外,

除去了所有不需要的元素。我无法删除上述函数中的Data,因为它会删除元素的内容。结果是以下JSON文件:

{
  "Data": [{
    "FirstName": "Test1",
    "LastName": "User",
  }, {
    "FirstName": "user",
    "LastName": "user",
  }, {
    "FirstName": "Ropbert",
    "LastName": "Jones",
  }, {
    "FirstName": "Jim",
    "LastName": "Morrison",
  }]
}

编辑“数据”时手动元素,它可以在HTML / Angular中找到以下内容:

<td>{{player.firstName}}</td>

但是,当写入包含&#39;数据&#39;的新JSON文件时元素,它会中断并且不会显示在网页上。

所以我的问题:

有没有办法排除&#39;数据&#39;使用fs.writeFile和JSON.stringify写入文件的元素?

或者,我可以在Angular中做些什么吗?

1 个答案:

答案 0 :(得分:0)

如果你只想删除数据部分,你可以用内容创建另一个元素。在Angular中,我认为你可以用你的模型做到这一点。这是一个例子(不是角度特定的):

var playerdata = {
  "Data": [{
    "FirstName": "Test1",
    "LastName": "User",
  }, {
    "FirstName": "user",
    "LastName": "user",
  }, {
    "FirstName": "Ropbert",
    "LastName": "Jones",
  }, {
    "FirstName": "Jim",
    "LastName": "Morrison",
  }]
};
playerdata = playerdata["Data"];
console.log(playerdata);

playerdata.forEach(function(player){
console.log(player.FirstName);
})