2017-04-13 54 views
0

我收到以下json形式的響應。我如何循環顯示person1和person2的用戶?我一直在我的控制檯中未定義。我不正確的做法是什麼?循環徹底Json對象 - JS

數據

{ 
"person1" : { 
"user": "David" , 

}, 
"person2" : { 
"user": "Crave" , 
} 
} 

功能

this.service.fetch(message){ 

     display1 = message.person1.user; 
     display2 = message.person2.user; 
} 
+0

用戶密鑰中的所有空白是什麼? –

+0

複製http://stackoverflow.com/questions/684672/how-do-i-loop-through-or-enumerate-a-javascript-object –

+0

@AleksandarMisich,用戶鍵中的空格可以使用錯誤? – XamarinDevil

回答

1

由於屬性周圍有間距,使用此json對象將需要[]表示法。例如。 json[" person1 "][" user "]。刪除間距將允許我們使用.表示法。 例如:

{ 
    "person1" : { 
    "user": "David", 
    }, 
    "person2" : { 
    "user": "Crave", 
    } 
} 

然後,向通過JSON對象循環中,我們可以使用一個換向中通過對象的鍵環(在這種情況下關鍵= [PERSON1,PERSON2])。如果我們假設下面的用戶變量等於上面的json對象:

for(key in users) { 
    console.log(users[key].user) // Will console.log "David", then "Crave"! 
} 
2

有在鍵名稱空間。如果您刪除用戶前後的空格,使其成爲「用戶」,並在「person1」之前和之後使其成爲「person1」,它應該可以工作。

0

沿着這些行的東西應該工作得很好。您可以輕鬆將相同的邏輯應用於您的問題。

var data = 
{ 
"person1":{ 
"user":"David"}, 
"person2":{ 
"user":"Crave" 
} 
}; 

function show_data(){ 
console.log(data.person1.user); 
console.log(data.person2.user); 
} 

show_data(); 

這簡單地使得易於對象分配給一個變量,並訪問它在showdata()函數。