2016-06-22 6 views
-3

私は次のことが欲しいです。 このようなJSON最低料金:javascriptオブジェクトからオブジェクト名を "削除"する方法はありますか?

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

私は、この場合のerrors.de.i18n.jsには、そのJSONの2番目の要素を削除して、このようなJSONになるだろう:

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

感謝をあなたは、新しいオブジェクトを作成し、このように必要なものを割り当てることができますすべての

+0

いくつかのコードを書いて共有する必要があります。 –

+0

あなたが望むものは明確ではありません。もっと詳しく教えてください。 – Veverke

+0

また、これは有効なJSON文字列でも有効なJSオブジェクトでもありません。 – somethinghere

答えて

2

オブジェクトの新しいプロパティに保持する値を割り当ててから、削除する値を設定解除します。

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

サブオブジェクトで複数のプロパティがあることができれば、あなたは親オブジェクトにそれらのすべてをコピーするためにループを使用することができます。

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

申し訳ありませんが動作しません、あなたは例を挙げることができますか? – Mister98

+0

おっと、 'unset'は' delete'だったはずです。それは今働く。 – Barmar

+0

ありがとうございました – Mister98

1

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

を参照してください:https://jsfiddle.net/fictus/eg5kkrmq/

関連する問題