2013-05-01 86 views
0

所以我想通過一個json對象迭代,但我不知道它是否會有一個或多個孩子。我現在用的是$。每個 jQuery函數與咖啡腳本像這樣:

$.each data.searchresults.response.results.result, (i) -> 
    count = i + 1 
    console.log data.searchresults.response.result.address.street 

現在這個工程如果「結果」節點有兩個實例;然而,當它只有一個實例時,它不起作用。我的問題是,我是以次最佳方式編寫$ .each函數和/或兩個,我應該檢查存在多少個結果節點,然後決定是循環還是隻訪問節點?

JSON隨着兩個http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=3925%20edwardsville%20galena%20road&citystatezip=47122

JSON與一個http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=206%20Plum%20lake%20drive&citystatezip=47172

運行多個結果節點時,但在這裏沒有錯誤與結果只有一個節點運行時,它是錯誤:

TypeError:'undefined'不是一個對象(評估'data.searchresults.response.results.result [i] .address.street')

+0

'JSON node'聽起來有點腥。這是XML而不是JSON – Musa 2013-05-01 03:39:52

+1

循環應該適用於任何數量的節點/元素 - 如果theres 0,它不會循環,如果更多,它會循環很多。確保結果的格式相同,因爲「$ .each」需要一個對象或數組,並且結果很可能是一個對象數組 – Ian 2013-05-01 03:46:08

回答

1

所以我遇到的問題(愚蠢的我知道)是在.each函數中,我使用完整的對象路徑和[i]來訪問對象的正確迭代。

因此,而不是使用這種console.log data.searchresults.response.result[i].address.street

我調整了劇本看起來像這樣:

$.each data.searchresults.response.results.result, (i,result) -> 
    count = i + 1 
    console.log result.address.street 
相關問題