如何在Javascript中重命名嵌套对象的键?
我有来自API的JSON数据,我想重命名多个键的出现。我尝试了多种方法,但到目前为止运气不佳 我的数据大致如下如何在Javascript中重命名嵌套对象的键?,javascript,arrays,json,reactjs,Javascript,Arrays,Json,Reactjs,我有来自API的JSON数据,我想重命名多个键的出现。我尝试了多种方法,但到目前为止运气不佳 我的数据大致如下 { "9ba698a4-d54c-448c-a216-10d52ed2a5a5":{ "name":"x", "data":{ "2021-05-04":{ "Amazon Simple Storage S
{
"9ba698a4-d54c-448c-a216-10d52ed2a5a5":{
"name":"x",
"data":{
"2021-05-04":{
"Amazon Simple Storage Service":123,
"Amazon Elastic Compute Cloud - Compute":123,
"sum":123,
"credits":{
"total":-123,
"Amazon Simple Storage Service":-123,
"Amazon Elastic Compute Cloud - Compute":-123
}
},
"2021-05-07":{
"Amazon Simple Storage Service":123,
"Amazon Elastic Compute Cloud - Compute":123,
"sum":123,
"credits":{
"total":-123,
"Amazon Simple Storage Service":-123,
"Amazon Elastic Compute Cloud - Compute":-123
}
},
"services":[
"Amazon Simple Storage Service",
"Amazon Elastic Compute Cloud - Compute"
],
"total":123,
"credits_total":-123
}
}
}
在提供的数据中,我想将“Amazon简单存储服务”的所有实例更改为“S3”,并将“Amazon弹性计算云计算”更改为“EC2”。我可以通过哪些方式修改对象内的嵌套数据
为了解决这个问题,我尝试使用自定义JS修改DOM,如下所示:
document.body.innerHTML=document.body.innerHTML.replace(“Amazon弹性计算云计算”,“S3”);
它按预期工作,但由于我将对象传递给chart JS,因此它不会更新图表上的事件
任何指导/帮助都将不胜感激。这应该行得通
JSON.parse(JSON.stringify(yourObject).replace(/Amazon Simple Storage Service/g, "S3").replace(/Amazon Elastic Compute Cloud - Compute/g, "EC2"))
一个“无脑”的解决方案是将JSON字符串化,使用字符串的
replace
函数,然后将其解析回JSON。也许这可以帮助您解决这个可怕的想法,当存在部分匹配的属性时,这个想法会立即中断。我的解决方案不是泛型的。它用于当前目的,如果需要,可以调整regex
以获得所需的结果。所以,这不是一个糟糕的主意。