2016-05-05 57 views
1

我從一個PHP頁面得到這個JSON對象:通過JSON對象Loopring並打印其值(jQuery的)

{ 
    "0": "8:00", 
    "1": "8:30", 
    "2": "9:00", 
    "3": "9:30", 
    "4": "10:00", 
    "5": "10:30", 
    "6": "11:00", 
    "7": "11:30", 
    "8": "12:00", 
    "9": "12:30", 
    "10": "13:00", 
    "11": "13:30", 
    "12": "14:00", 
    "13": "14:30", 
    "14": "15:00", 
    "15": "15:30", 
    "18": "17:00", 
    "19": "17:30", 
    "20": "18:00", 
    "21": "18:30", 
    "22": "19:00", 
    "23": "19:30" 
} 

,我想通過它來運行,並打印其值。現在我可以使用Json.stringify將所有東西打印到屏幕上(完全按照上面粘貼的那樣),但是我只想打印沒有鍵的值。如果我嘗試的結果打印到控制檯像

console.log(results); 

我得到的是

Object {hours: Object} 

我在做JSON調用和操縱響應相當新的,所以我不能完全做什麼我只需要看看我發現的其他問題。由於

編輯:我期待的結果是

8:00 
9:00 
etc 

上一個div。

+0

「打印其值」不清楚。顯示如何看看預期的結果 – RomanPerekhrest

+0

[通過JavaScript對象循環]可能的重複(http://stackoverflow.com/questions/684672/loop-through-javascript-object) – Rajesh

+0

添加到主帖子,謝謝。 –

回答

0

要提取對象的值並丟棄鍵,你想鏈Object.keysArray.prototype.map像這樣:

var data = { "0": "8:00", "1": "8:30", "2": "9:00", "3": "9:30", "4": "10:00", "5": "10:30", "6": "11:00", "7": "11:30", "8": "12:00", "9": "12:30", "10": "13:00", "11": "13:30", "12": "14:00", "13": "14:30", "14": "15:00", "15": "15:30", "18": "17:00", "19": "17:30", "20": "18:00", "21": "18:30", "22": "19:00", "23": "19:30" }; 
var result = Object.keys(data).map(function (key) { 
    return data[key]; 
}); 
console.log(result); 
2

您通過對象假設結果對循環爲對象

for(var hours in results){ 
    console.log(results[hours]); 
} 
+0

我認識到在他的例子中沒有必要,但總是很好的檢查我感覺到的'hasOwnProperty'。 – IMTheNachoMan

+0

Object.keys'會爲你做屬性檢查並避免原始'for ... in'循環的複雜性。 – ssube

+0

必須是「console.log(results [hours]);」 –

2

您可以使用for ...循環:

for(var hours of results){ 
    console.log(hours); 
} 
0

這是n在您的示例中不必要,因爲您從頁面獲取JSON,但爲了避免將來可能出現的問題,您應該始終執行hasOwnProperty檢查以確保只獲取JSON對象的屬性並且不會繼承屬性:

for(key in data) 
{ 
    if(data.hasOwnProperty(key)) 
    { 
     console.log(data[key]); 
    } 
} 
+0

或者你可以像Ivan建議的那樣使用for..of循環。 –

+0

@Pamblam:DOH!我沒有看到。謝謝! – IMTheNachoMan