Javascript 重命名嵌套JSON数据集不同级别的变量

Javascript 重命名嵌套JSON数据集不同级别的变量,javascript,json,d3.js,Javascript,Json,D3.js,我希望根据嵌套JSON数据集中的级别,使用不同的名称重命名变量 JSON文件示例如下所示: [ { key: "John Doe School", values: [ { key: "Mr. Brown", values: [ { key: "Joe", TestScore: 95 }, { key:

我希望根据嵌套JSON数据集中的级别,使用不同的名称重命名变量

JSON文件示例如下所示:

[
  {
    key: "John Doe School",
    values: [
      {
        key: "Mr. Brown",
        values: [
          {
            key: "Joe",
            TestScore: 95
          },
          {
            key: "Sarah",
            TestScore: 99
          }
        ]
      }
    ]
  }
]
在本例中,我想将第一级“键”更改为“学校”,第二级“键”更改为“教师”,第三级“键”更改为“学生”

JSON数据集如下所示:

[
  {
    School: "John Doe School",
    values: [
      {
        Teacher: "Mr. Brown",
        values: [
          {
            Student: "Joe",
            TestScore: 95
          },
          {
            Student: "Sarah",
            TestScore: 99
          }
        ]
      }
    ]
  }
]

好吧,举个例子,你可以这样做

var json = [
  {
    key: "John Doe School",
    values: [
      {
        key: "Mr. Brown",
        values: [
          {
            key: "Joe",
            TestScore: 95
          },
          {
            key: "Sarah",
            TestScore: 99
          }
        ]
      }
    ]
  }
];

json[0].key = "School";
json[0].values[0].key = "Teacher";
json[0].values[0].values[0].key = "Student";
json[0].values[0].values[1].key = "Student";
更新以下评论

json[0]['School'] = json[0].key; // Add new key:value
delete json[0].key; // Delete previous one

json[0].values[0]['Teacher'] = json[0].values[0].key; // Add new key:value
delete json[0].values[0].key; // Delete previous one

json[0].values[0].values[0]['Student'] = json[0].values[0].values[0].key; // Add new key:value
delete json[0].values[0].values[0].key; // Delete previous one

json[0].values[0].values[1]['Student'] = json[0].values[0].values[1].key; // Add new key:value
delete json[0].values[0].values[1].key; // Delete previous one

但是,我假设您将循环使用许多不同的JSON对象,因此您当然也需要实现它,但上面的结构应该为您指明正确的方向;)

你尝试过什么?我试图实现以下两篇文章中的解决方案:1。),2。)。然而,它们似乎并没有解决嵌套问题,因为“key”在每个级别都会以相同的方式重命名。那么呢?你有什么问题?上面的链接没有解决嵌套问题,因为“key”在每个级别都会以相同的方式重命名。非常感谢你的建议。问题在于,此解决方案将覆盖与“key”关联的值,而不是“key”的变量名。请参见此处:。我已经重新发布了这个问题,以使其更清楚地显示所需的输出。非常感谢。这个解决方案帮助很大!:)很高兴这有帮助。。。快乐编码!