Javascript 如何添加和删除 2 层深度的 JSON 元素

标签 javascript json node.js angular

我在 google 上搜索并反复研究如何从 JSON 对象中删除元素。

这是我的简化 JSON,用于说明我的要求。

捆绑:

{
    "resourceType": "Bundle",
    "meta": {
        "lastUpdated": "2017-10-06T04:42:22.411Z"
    },
    "type": "searchset",
    "total": "0",
    "entry": [
        {
            "_id": "59d5739e668e9e3fd29aeb0d",
            "resource": {
                "id": "59d5739e668e9e3fd29aeb0d"
            },
            "__v": 0
        },
        {
            "_id": "59d6a3fae4b45d50c5ffd4f7",
            "resource": {
                "id": "59d6a3fae4b45d50c5ffd4f7"
            },
            "__v": 0
        },
        {
            "_id": "59d6a831e4b45d50c5ffd4fa",
            "resource": {
                "id": "59d6a831e4b45d50c5ffd4fa"
            },
            "__v": 0
        }
    ]
}

如何删除所有entry._id和entry.__v? 我尝试过这些,但不起作用。

delete bundle.meta;   <-- meta is on level 1, it works.
delete bundle.entry._id; <-- not working. The _id under entry
delete bundle.__v; <-- not working. The __v is also under entry

如何在每个条目下添加新元素,例如下面的“fullname”

我想要的结果 - 删除“_id”和“__v”,然后将“fullname”添加到条目[]中:

{
    "resourceType": "Bundle",
    "meta": {
        "lastUpdated": "2017-10-06T04:42:22.411Z"
    },
    "type": "searchset",
    "total": "0",
    "entry": [
        {
            "fullname": "Apple",
            "resource": {
                "id": "59d5739e668e9e3fd29aeb0d",
            }
        },
        {
            "fullname": "Orange",
            "resource": {
                "id": "59d6a3fae4b45d50c5ffd4f7"
            },
        }, ......

我尝试了很多方法,也用谷歌搜索了很多。感谢您的帮助!

<小时/>

感谢维韦克的回答。它有效。

for (var i = 0; i < bundle.entry.length; i++) {
    delete bundle.entry[i]._id;
    delete bundle.entry[i].__v;
    bundle.entry[i].fullname = "Test";
}

最佳答案

请尝试下面的代码。测试了一下可以帮到你。

  var object1 = {
    "resourceType": "Bundle",
    "meta": {
        "lastUpdated": "2017-10-06T04:42:22.411Z"
    },
    "type": "searchset",
    "total": "0",
    "entry": [
        {
            "_id": "59d5739e668e9e3fd29aeb0d",
            "resource": {
                "id": "59d5739e668e9e3fd29aeb0d",
            },
            "__v": 0
        },
        {
            "_id": "59d6a3fae4b45d50c5ffd4f7",
            "resource": {
                "id": "59d6a3fae4b45d50c5ffd4f7"
            },
            "__v": 0
        },
        {
            "_id": "59d6a831e4b45d50c5ffd4fa",
            "resource": {
                "id": "59d6a831e4b45d50c5ffd4fa"
            },
            "__v": 0
        }
    ]
  };

  var array1=['Apple','Orange','Gava']

  function a(){
        for(var i=0;i<object1.entry.length;i++){
            delete object1.entry[i]._id;
            delete object1.entry[i].__v;
            object1.entry[i].fullname = array1[i];
        }
        console.log(object);
  }

关于Javascript 如何添加和删除 2 层深度的 JSON 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46598589/

相关文章:

javascript - 从json数组中查找满足条件的特定元素的值

java - 从 struts-rest-plugin 请求时如何排除属性?

javascript - 对动态添加的字段进行排序

javascript - 使用 Jquery timeago 插件

javascript - 循环随机变量和数组来解决多次包含 JavaScript 的问题

javascript - 在一组字符串中找到最长的公共(public)起始子字符串

json - 如何在 Rust 中使用 reqwest 反序列化任意 json 结构?

javascript - 打包一个 npm 模块,以便它可以在前端工作(例如使用 create-react-app) `You may need an appropriate loader to handle this file type`

mysql - 我应该使用什么来验证使用nodejs登录的用户

javascript - 如何将类切换到 reactjs 中的 div 元素?