2016-04-21 7 views
1

Ich habe dieses JSON,Bearbeiten und Entfernen von Wert in json mit Jquery

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

Wie kann ich die Beschr des Elements bearbeiten, die einen Code C341 hat? Wie kann ich den Artikel löschen, der einen Code von c101 hat?

habe ich versucht, diesen Code aber nicht funktioniert,

delete obj.items.Code="c101" 

Antwort

1

Für das Element mit spezifischer ID verwenden Löschen Array.prototype.findIndex() und splice(),

obj.items.splice(obj.items.findIndex(v => v.Code == "c101"), 1) 

Zur Bearbeitung Verwendung 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

da draußen wahrscheinlich effiziente Lösungen Es gibt, aber das ist die Grundidee von dem, was Sie tun mögen.

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

Bevor Sie den Artikel durch seinen Code zu finden und dann edit es

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" 

Diese Lösung mit IE9 + arbeitet und anderen Browsern

0

Haben Sie versucht:

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

Verwandte Themen