我怎样才能消除"来自javascript对象的对象名称?

时间:2016-06-22 14:37:59

标签: javascript jquery json

我想得到的是以下内容。 从像这样的json开始:

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

我会删除那个json的第二个元素,在这个例子中是errors.de.i18n.js并得到一个像这样的json:

{{1}}

谢谢大家

2 个答案:

答案 0 :(得分: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'];

答案 1 :(得分: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));

请参阅我的jsfiddle:https://jsfiddle.net/fictus/eg5kkrmq/