Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中重命名嵌套对象的键?_Javascript_Arrays_Json_Reactjs - Fatal编程技术网

如何在Javascript中重命名嵌套对象的键?

如何在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

我有来自API的JSON数据,我想重命名多个键的出现。我尝试了多种方法,但到目前为止运气不佳

我的数据大致如下

{
   "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
以获得所需的结果。所以,这不是一个糟糕的主意。