2014-04-02 35 views
0

我有一些例子JSON ...要通过JSON树得到的值,然后打印到CONSOLE.LOG

{ 
"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”等),并获取每个人的“名称”的值(我想用console.log打印每一个到控制台)。我怎样才能做到这一点?

要么Javascript/jQuery解决方案赞赏。

注意我无法更改JSON,因为我从某人的API中获取它,并且没有权力重新构建其JSON,因此如果您认为JSON不正确,请忽略它,因为我没有其他方法。

回答

2

您可以使用$.each()通过你的对象colors迭代,并获得name值:

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

Fiddle Demo

+0

谢谢:)我将仅需9分钟时打勾它说我可以 – user3387566

+0

拳,你应该用JSON.parse函数解析您的JSON(如果需要旧的浏览器的兼容性,使用json2.js) –

+0

谢谢佐尔坦。令人惊讶的是,我已经知道如何做到这一点,但感谢你张贴,以防其他人需要知道。 – user3387566

0

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

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

Fiddle

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控制台粘贴和查看结果

+0

你可以给我正确的方向阅读关于使用[]这样的?我不确定它是如何工作的 – user3387566

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); 
}); 
相关问题