我们假设我有以下形式的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值都作为水果的名称似乎是多余的,但我需要这个结构用于我正在进行的程序。有什么建议吗?
答案 0 :(得分:2)
首先,你的属性应该是引号(除非它们是变量,但我不认为它们是,但是:
"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);