2016-04-21 51 views
1

我有這樣的JSON去除JSON值,編輯和使用jquery

{"items":[{"Code":"c101","Desc":"Car"},{"Code":"c341","Desc":"House"}]} 

我怎麼能編輯有C341的代碼項目的說明? 如何刪除具有c101代碼的項目?

我想這個代碼,但沒有工作,

delete obj.items.Code="c101" 

回答

1

刪除的項目與特定的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. 
0

可能有更有效的解決方案在那裏,但是這是你想要做什麼的基本思想。

$.each(obj.items, function (index, element){ 
    if (element.Code === "c101") { 
    obj.items.splice(index, 1); 
    return false; 
    } 
}); 
0

之前,你必須通過它的代碼,然後找項目編輯它

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 +及其他瀏覽器

0

你試過:

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 }); 
 
}