2016-06-22 9 views
-3

Ich möchte die folgende Sache bekommen. von einem json wie folgt starten:Wie kann ich einen Objektnamen von einem JavaScript-Objekt "eliminieren"?

{ 
    "de": { 
     "errors.de.i18n.js": { 
      "errors": { 
       "addcreditcard": "Wir konnten diese Karte nicht verifizieren. Bitte überprüfe deine Angaben und versuche es noch einmal." 
      } 
     } 
    } 
} 

ich das zweite Element dieser json löschen würde, in diesem Fall errors.de.i18n.js und json wie diese:

{ 
    "de": { 
     "errors": { 
      "addcreditcard": "Wir konnten diese Karte nicht verifizieren. Bitte überprüfe deine Angaben und versuche es noch einmal." 
     } 
    } 
} 

Thank Sie alle

+0

Sie sollten einige Codes schreiben und teilen –

+0

Was Sie wollen, ist nicht klar. Bitte erläutern Sie mehr. – Veverke

+0

Dies ist auch weder eine gültige JSON-Zeichenfolge noch ein gültiges JS-Objekt. – somethinghere

Antwort

2

Weisen Sie den Wert, den Sie behalten möchten, einer neuen Eigenschaft im Objekt zu, und heben Sie dann die zu löschende Eigenschaft auf.

var object = { 
 
    "de": { 
 
    "errors.de.i18n.js": { 
 
     "errors": { 
 
     "addcreditcard": "Wir konnten diese Karte nicht verifizieren. Bitte überprüfe deine Angaben und versuche es noch einmal." 
 
     } 
 
    } 
 
    } 
 
}; 
 

 
object.de.errors = object.de['errors.de.i18n.js'].errors; 
 
delete object.de['errors.de.i18n.js']; 
 

 
console.log(JSON.stringify(object));

Wenn mehr Objekte im Unterobjekt sein kann, können Sie eine Schleife verwenden, können alle von ihnen auf das übergeordnete Objekt zu kopieren.

var subobject = object.de['errors.de.i18n.js']; 
for (var prop in subobject) { 
    if (subobject.hasOwnProperty(prop)) { 
     object.de[prop] = subobject[prop]; 
    } 
} 
delete object.de['errors.de.i18n.js']; 
+0

Entschuldigung, aber es funktioniert nicht, können Sie ein Beispiel geben? – Mister98

+0

Hoppla, 'unset' sollte' delete' sein. Es funktioniert jetzt. – Barmar

+0

Danke, jetzt funktioniert – Mister98

1

Sie können ein neues Objekt erstellen und zuweisen, was Sie so brauchen:

 var oldobj = { "de": { "errors.de.i18n.js": { "errors": { "addcreditcard":"Wir konnten diese Karte nicht verifizieren. Bitte überprüfe deine Angaben und versuche es noch einmal."}}}}; 
     var newobj = {'de': {'errors': []} }; 
     newobj.de.errors = oldobj.de['errors.de.i18n.js']['errors']; 

     alert(JSON.stringify(newobj)); 

Siehe meine Handschrift: https://jsfiddle.net/fictus/eg5kkrmq/

Verwandte Themen