我有這樣的JSON去除JSON值,編輯和使用jquery
{"items":[{"Code":"c101","Desc":"Car"},{"Code":"c341","Desc":"House"}]}
我怎麼能編輯有C341的代碼項目的說明? 如何刪除具有c101代碼的項目?
我想這個代碼,但沒有工作,
delete obj.items.Code="c101"
我有這樣的JSON去除JSON值,編輯和使用jquery
{"items":[{"Code":"c101","Desc":"Car"},{"Code":"c341","Desc":"House"}]}
我怎麼能編輯有C341的代碼項目的說明? 如何刪除具有c101代碼的項目?
我想這個代碼,但沒有工作,
delete obj.items.Code="c101"
刪除的項目與特定的ID使用Array.prototype.findIndex()
和splice()
,
obj.items.splice(obj.items.findIndex(v => v.Code == "c101"), 1)
爲編輯使用Array.prototype.find()
,
var edit = obj.items.find(v => v.Code == "c341")
edit.Code = "asd" //This will affect the item's code in the original array
//since `find()` will return the reference not a copy.
可能有更有效的解決方案在那裏,但是這是你想要做什麼的基本思想。
$.each(obj.items, function (index, element){
if (element.Code === "c101") {
obj.items.splice(index, 1);
return false;
}
});
之前,你必須通過它的代碼,然後找項目編輯它
var obj = {"items":[{"Code":"c101","Desc":"Car"},{"Code":"c341","Desc":"House"}]};
function getItemByCode(code){
for(var i in obj.items){
var item = obj.items[i];
if(item.Code === code){
return item;
};
};
}
var item = getItemByCode('c341');
item.Desc = "new desc"
個
該解決方案可與IE9 +及其他瀏覽器
你試過:
var json_string = '{"items":[{"Code":"c101","Desc":"Car"},{"Code":"c341","Desc":"House"}]}';
var json = JSON.parse(json_string);
if (json && json.items) {
\t json.items = json.items.filter((element, i) => {
\t \t if (element.Code) {
\t \t \t return element.Code != 'c101';
\t \t }
\t \t return true;
\t });
}