Javascript 重命名嵌套JSON数据集不同级别的变量
我希望根据嵌套JSON数据集中的级别,使用不同的名称重命名变量 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:
[
{
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”的变量名。请参见此处:。我已经重新发布了这个问题,以使其更清楚地显示所需的输出。非常感谢。这个解决方案帮助很大!:)很高兴这有帮助。。。快乐编码!