我想得到的是以下内容。 从像这样的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}}
谢谢大家
答案 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/