我有一些例子JSON ......
{
"colors": {
"1": {
"name": "red",
"rgb_value": "255,0,0"
},
"2": {
"name": "green",
"rgb_value": "0,255,0"
},
"3": {
"name": "blue",
"rgb_value": "0,0,255"
}
}
}
问题:我想知道如何进入"颜色"然后检查每个对象(" 1"," 2"," 3" ...等)并获得" name"的值对于每一个(我想用console.log将每个打印到控制台)。我怎么能这样做?
赞赏Javascript / jQuery解决方案。
注意我无法更改JSON,因为我从某人的API中获取它并且没有权力重新构建他们的JSON所以如果您不认为JSON是正确的,请忽略它,因为我别无他法。
答案 0 :(得分:2)
您可以使用$.each()
遍历对象的colors
并获取name
值:
$.each(obj.colors, function(i, val) {
console.log(obj.colors[i].name);
});
<强> Fiddle Demo 强>
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为这会对你有所帮助。假设您的对象名称是数据
var data = {
"colors": {
"1": {
"name": "red",
"rgb_value": "255,0,0"
},
"2": {
"name": "green",
"rgb_value": "0,255,0"
},
"3": {
"name": "blue",
"rgb_value": "0,0,255"
}
}
}
for (key in data["colors"]) {
console.log(data["colors"][key]["name"])
}
这次它现在正在运行,您可以在javascript控制台中复制并粘贴并查看结果
答案 3 :(得分:0)
JS的另一个解决方案。 Object.keys(obj.colors)
返回["1","2","3"]
和forEach()
循环遍历obj.colors["1"]
,obj.colors["2"]
和obj.colors["3"]
记录每个name
的值Object.keys(obj.colors).forEach(function (key) {
console.log(obj.colors[key].name);
});
它们。
{{1}}