通过JSON树获取值然后打印到console.log

时间:2014-04-02 10:03:13

标签: javascript jquery json

我有一些例子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是正确的,请忽略它,因为我别无他法。

4 个答案:

答案 0 :(得分:2)

您可以使用$.each()遍历对象的colors并获取name值:

$.each(obj.colors, function(i, val) {
    console.log(obj.colors[i].name);
});

<强> Fiddle Demo

答案 1 :(得分:0)

假设你已经解析了你的JSON,一个简单的循环就足够了:

for (var k in obj.colors) {
  console.log(obj.colors[k].name);
}

Fiddle

答案 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}}