假设我有一个 JSON 数据集,格式如下:
{ "fruits": {
"apple": {
"color": red,
"size": small
}
"orange": {
"color": orange,
"size": small
}
}
我如何向每个人添加一个额外的名称数据点(使用类似 JavaScript 的东西来解析数据),以便它们看起来像这样:
{ "fruits": {
"apple": {
"color": red,
"size": small,
"name": apple
}
"orange": {
"color": orange,
"size": small,
"name": orange
}
}
我知道将 id 和 name 值都作为水果的名称似乎是多余的,但我正在处理的程序需要这种结构。有什么建议吗?
最佳答案
首先,您的属性应该用引号引起来(除非它们是变量,但我不认为它们是,即:
"apple": {
"color": "red",
"size": "small"
}
你的两个水果之间需要一个逗号。
现在您所要做的就是遍历每个水果并添加一个与其名称相同的新属性:
for (var property in data.fruits) {
if (data.fruits.hasOwnProperty(property)) {
data.fruits[property].name = property;
}
}
方括号表示法允许您访问动态或变量属性名称,这使得设置名称属性非常简单。参见 this answer了解如何遍历数组。
下面的代码片段演示了实际的代码:
var data = {
"fruits": {
"apple": {
"color": "red",
"size": "small"
},
"orange": {
"color": "orange",
"size": "small"
}
}
}
for (var property in data.fruits) {
if (data.fruits.hasOwnProperty(property)) {
data.fruits[property].name = property;
}
}
console.log(data);
关于javascript - 向 JSON 数据集添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049377/