说我有一些像这样的JSON数据:
blah = [
{"Species":"setosa","Sepal.Length":5.1,"Sepal.Width":3.5},{"Species":"setosa","Sepal.Length":4.9,"Sepal.Width":3}
]
在我的代码中,我不一定知道JSON的关键名称。因此,我可以抓住这样的键(我知道数组中所有元素的键都相同):
mynames = Object.keys(blah[0]); // gives this... ["Species", "Sepal.Length", "Sepal.Width"]
我可以将此处名为Species
的第一个密钥的名称更改为newthing
,如下所示:
JSON.parse(JSON.stringify(blah).split('"Species":').join('"newthing":'));
但是,如果我不知道它被称为“物种”,但知道它是“我的名字”的第一个元素,我想我可以做同样的事情这样:
JSON.parse(JSON.stringify(blah).split('mynames[0]:').join('"newthing":'));
或
JSON.parse(JSON.stringify(blah).split('"mynames[0]":').join('"newthing":'));
但都失败了。有没有办法简单地做到这一点?
答案 0 :(得分:1)
看起来你想要的是
blah[0].newthing = blah[0][mynames[0]];
delete blah[0][mynames[0]];
但知道这是'mynames'的第一个元素,
请注意,无法保证密钥的顺序,因此可能无法在每个环境中运行,甚至无法进行多次运行。
答案 1 :(得分:0)
How do I remove a property from a JavaScript object?说明了delete
关键字如何用于删除属性。您只需将新属性设置为旧属性,然后删除旧属性即可。