如何更改json对象的每个键

时间:2017-12-14 10:56:15

标签: javascript json

我想在每个json对象键的开头添加一些文本。

  Object.keys(json).forEach(key => {
    json = json.replace(key, `_${key}`);
  });

我正在尝试此方法,但它会更改某些值,而不是在每个键的开头添加_。

1 个答案:

答案 0 :(得分:6)

你是对的。您必须迭代Object.keys并在每次迭代内部分配一个具有相同值的新密钥并删除之前的密钥。

我们在每个密钥前添加-



function modifyKeys(obj){
    Object.keys(obj).forEach(key => {
        obj[`_${key}`] = obj[key];
        delete obj[key];
        if(typeof obj[`_${key}`] === "object"){
            modifyKeys(obj[`_${key}`]);
        }
    });
}

var jsonObj = {a:10, b:{c:{d:5,e:{f:2}}, g:{}},i:9};
modifyKeys(jsonObj);
console.log(jsonObj);