var changeJsonKeyName, newObj, obj;
changeJsonKeyName = function(json, oldName, newName) {
json[newName] = json[oldName];
delete json[oldName];
// json.newName = json.oldName;
// delete json.oldName;
// if i use point in this ,i can not get my result that i want
return json;
};
obj = {
'aaa': '1111',
'bb': {
'cc': 333
}
};
newObj = {};
newObj = changeJsonKeyName(obj, 'aaa', 'nnn');
console.log(newObj);
如果我在这里使用点,我不能得到我想要的结果,有什么不对,请帮帮我,非常感谢。
答案 0 :(得分:0)
我不确定我是否理解正确,但是:
json[newName]
使用newName变量
的值命名的访问属性json.newName
访问名为'newName'的属性,该属性不存在
答案 1 :(得分:0)
首先,正如评论所指出的,这是一个Javascript问题,而不是JSON问题。
但你似乎在问为什么会这样:
json[newName] = json[oldName];
delete json[oldName];
但这不是:
json.newName. = json.oldName.;
delete json.oldName;
没有。
答案是第二种形式实际上相当于
json["newName"] = json["oldName"];
delete json["oldName"];
换句话说,您正在处理名称为常量“oldName”和“newName”的属性,而不是名称作为参数传递给该方法的属性。