javascript - 向 JSON 数据集添加值

标签 javascript json parsing firebase

假设我有一个 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/

相关文章:

c++ - 解析类似于 C++ 的东西

javascript - 带参数调用父函数

javascript - TinyMCE,IE9,剥离 <script> 标签

sql - 如何从 postgres 中的同一张表中获取分层 json

javascript - 只获取一次数据到 React App。页面重新加载后不再获取

javascript - 解析 D3 中堆积面积图的数组

基于 JavaScript 库的项目组织

javascript - 加载另一个 div 时隐藏 div

c# - 在 C# 中将数据集作为 json 返回

php - 在 PHP 中解析时需要在 JSON feed 中保留反斜杠