繁体   English   中英

如何从json对象中删除嵌套键?

[英]How to remove nested key from json object?

我有一个 JSON 对象,其中包含所有级别的“开始”和“结束”键。

我不想在对象中有“开始”和“结束”键和值。

怎么做? 我尝试使用omit form lodash但它只在第一级删除,所以这个解决方案还不够。

{
  "type": "...",
  "start": 0,
  "end": 93,
  "items": [
    {
      "type": "...",
      "start": 0,
      "end": 93,
      "more": {
        "type": "...",
        "start": 0,
        "end": 93,

这个怎么样?

  o = JSON.parse(
    JSON.stringify(o, (key, value) => {
      if (key === "start" || key === "end") return undefined;

      return value;
    })
  );

你可以试试这样的

function removeKeys(obj) {
    if (obj && Object.keys(obj).length) {
        delete obj.start;
        delete obj.end;

        Object.keys(obj).forEach(key => {
            if (Array.isArray(obj[key])) {
                obj[key].forEach(removeKeys);
            } else if (obj[key] !== null && typeof obj[key] === 'object' ) {
                removeKeys(obj[key]);
            }
        });
    }
}

递归删除所有嵌套对象中的开始和结束键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM