使用javascript或jQuery删除多嵌套JSON中的元素

时间:2015-04-10 04:25:55

标签: javascript jquery json

我想通过使用他们的密钥删除任何JSON元素。例如,

这是我的JSON数据:

{
  "CreateprivateNetwork": {
    "description": "Creatinganetwork.",
    "input": {
        "body": {
            "network": {
                "name": "$.networkname",
                "admin_state_up": "sdfdsf"
            }
        }
    },
    "action": "neutron.create_network",
    "publish": {}
  }
}

我想从此JSON中删除元素“name”

删除路径:“CreateprivateNetwork.input.body.network.name”。

请帮我解决这个问题。

注意:此路径可能会动态更改。所以我必须从动态JSON中删除任何元素。

2 个答案:

答案 0 :(得分:2)

使用JSON.parse删除您不需要的密钥



function format(json_string, key_to_skip) {
    return JSON.parse(json_string, function (key, value) {
        if (key !== key_to_skip) {
            return value;
        }
    });    
}

var json = {
    "CreateprivateNetwork": {
        "description": "Creatinganetwork.",
        "input": {
            "body": {
                "network": {
                    "name": "$.networkname",
                    "admin_state_up": "sdfdsf"
                }
            }
        },
        "action": "neutron.create_network",
        "publish": {}
    }
};

alert(JSON.stringify(format(JSON.stringify(json), 'name')));




答案 1 :(得分:0)

使用delete命令删除元素。

在你的情况下,它将是:

var json = { "CreateprivateNetwork": { "description": "Creatinganetwork.", "input": { "body": { "network": { "name": "$.networkname", "admin_state_up": "sdfdsf" } } }, "action": "neutron.create_network", "publish": {} } };

delete json.CreateprivateNetwork.input.body.network.name;