簡體   English   中英

使用angular刪除json對象鍵值

[英]Remove json object key value using angular

我有json響應,我想從中刪除一些對象鍵值,並將編輯后的響應存儲在其他部分,以便我可以再次使用。

我知道使用簡單的javascript,但是我對angularjs沒有任何想法。

傑森回應

{
    "$id": "1",
    "XYZ": [],
    "ABC": [
        {
            "$id": "41",
            "ID": 1,
            "Order": 0,
            "Delay": 0,
            "Name": "abc",
            "Count": "9",
            "Storage": 3,
            "Groups": []
        }
    ],
    "Projected": 2019
}

現在我要從這個Json文件中過濾掉

"$id": "41""ID": 1"Order": 0"Delay": 0"Groups": []"Name": "abc"

因此,我要存儲的新的json結構將如下所示:

{
    "$id": "1",
    "XYZ": [],
    "ABC": [
        {
            "Count": "9",
            "Storage": 3
        }
    ],
    "Projected": 2019
}

有什么方法可以實現?

您不需要一些神奇的棱角材料。 您可以只使用普通的舊JavaScript。 我的方法遍歷ABC數組中的所有項目,並delete props數組中定義的所有屬性。 請注意,這會主動修改ABC數組項。

 const obj = { "$id": "1", "XYZ": [], "ABC": [ { "$id": "41", "ID": 1, "Order": 0, "Delay": 0, "Name": "abc", "Count": "9", "Storage": 3, "Groups": [] } ], "Projected": 2019 } // Now from this Json file I want to filter out const props = ["$id", "ID", "Order", "Delay", "Groups", "Name"]; props.forEach(prop => { obj.ABC.forEach(abc => { delete abc[prop]; }); }); console.log(obj); 

嘗試這個

 let json = { "$id": "1", "XYZ": [], "ABC": [ { "$id": "41", "ID": 1, "Order": 0, "Delay": 0, "Name": "abc", "Count": "9", "Storage": 3, "Groups": [] } ], "Projected": 2019 }; json["ABC"] = json["ABC"].map(obj => ({ "Count": obj["Count"], "Storage": obj["Storage"] })); // or dynamic way let keepkeys = ["Storage", "Count"]; json["ABC"] = json["ABC"].map(obj => { let newObj = {}; keepkeys.forEach(key => newObj[key] = obj[key]); return newObj; }); console.log(json) 

其他解決方案的替代方案。 如果我們有一個名為json的變量。 這個方法很簡單

let len = json.ABC.length;
for (let i=0;i<len;i++){
    delete json.ABC[i].$id;
    delete json.ABC[i].ID;
    delete json.ABC[i].Order;
    delete json.ABC[i].Delay;
    delete json.ABC[i].Groups;
    delete json.ABC[i].Name;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM