更改JSON密钥并保持其索引相同

时间:2015-12-04 06:15:00

标签: javascript jquery json

我想更改JSON属性的键并保持/保持其位置/索引。

E.g。

{"Test1" : { 
             mytest1:34,
             mytest2:56,
             mytest6:58,
             mytest5:89,
           }
}

现在我想将关键 mytest6 更改为 mytest4 ,并保持原样。

注意:在我的情况下,我无法使用数组。

感谢。

1 个答案:

答案 0 :(得分:0)

    jsonObj = {"Test1" : { 
             mytest1:34,
             mytest2:56,
             mytest6:58,
             mytest5:89,
           }
};

var old_key = "mytest6";
var new_key = "mytest4";

if (old_key !== new_key) {
    Object.defineProperty(jsonObj.Test1, new_key,
        Object.getOwnPropertyDescriptor(jsonObj.Test1, old_key));
    delete jsonObj.Test1[old_key];
}

console.log(jsonObj);

此方法可确保重命名的属性与原始属性的行为相同。

此外,在我看来,将它包装到函数/方法并将其放入Object.prototype的可能性与您的问题无关。

Fiddle