2014-04-02 37 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); 
}); 
相關問題