【问题标题】:Is it possible to remove "data" element from JSON?是否可以从 JSON 中删除“数据”元素?
【发布时间】:2017-11-19 01:02:24
【问题描述】:

我从 2 个不同的链接获取 json 并将它们附加到 1.code in this answer。但是,我想从中删除 data 元素。我该如何处理?

【问题讨论】:

  • 一张图片值得他们说一千个字......不在这里 - 请以代码形式发布

标签: javascript json node.js


【解决方案1】:

尝试使用删除

delete(server.events[0].data)

【讨论】:

  • 有点跑题了。这就是我们在解析 JSON 时删除 data 的方式吗?我的意思是,我们是每次都手动删除data,还是有更好的方法我不知道?
  • 你的意思是说你想从每个事件中删除数据对吧?
  • 我的意思是,每次我调用此代码var json = JSON.parse(url/json)var json 都包含data。不带data 怎么求JSON
  • 您需要在每次调用 JSON.parse 后删除 data。你不能在服务器端删除它吗?
  • @EoiFirst,我可以,但我认为使用 JavaScript 可能有更简单的方法。类似于内置函数的东西,它采用 JSON 并删除 data
【解决方案2】:

你可以像这样使用删除关键字;

delete server.events[0].data;

更新了关于评论问题的答案;

当您只需要删除几个字段时,可以,这就是完成的方式。但是,您也可以通过将对象重新映射到新对象来转换对象。这允许创建一个没有过时字段的新对象,并可能为您的键选择新名称。 一个小例子:

var items = {server: {events: [{data: [], paging: {}}]}};
var newEventMapping = items.server.events.map(item => ({
    myPaging: item.paging
}));
console.log(newEventMapping);

items.server.events = newEventMapping;

console.log(items);

【讨论】:

  • 谢谢,有点跑题了。这是我们在解析 JSON 时删除 data 的方式吗?我的意思是,我们是手动删除 data 还是有更好的方法,比如 npm 模块?
【解决方案3】:
function removeData(obj){
  for(var key in obj){
  if(key == 'data') delete obj[key];
  if(typeof obj[key] == 'object') removeData(obj[key]);
  }
}

【讨论】:

  • JSON 结构似乎不需要递归函数。
  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 2022-01-23
  • 2013-10-14
  • 2018-10-17
  • 2011-12-04
相关资源
最近更新 更多