2014-01-23 71 views
1

好了,所以我有以下的代碼,這是應該尋找城市詞典一定期限,然後登錄定義控制檯:具有相同標籤的多個值

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "http://api.urbandictionary.com/v0/define?term=polar%20vortex", true); 
xhr.onload = function (e) { 
    if (xhr.readyState === 4) { 
    if (xhr.status === 200) { 
     console.log(xhr.responseText); 
     var response = JSON.parse(xhr.responseText); 
     console.log("Definition: " + response.list.definition); 
    } else { 
     console.error(xhr.statusText); 
    } 
    } 
}; 
xhr.onerror = function (e) { 
    console.error(xhr.statusText); 
}; 
xhr.send(null); 

然而,當我運行代碼,它返回一個「undefined」的值。我相信這是因爲在JSON的「list」標籤下有多個「定義」標籤(看看here)。

所以,我的問題是,我怎樣才能得到第一個定義,並用「定義」標籤忽略所有其他值?

謝謝!

+0

我無法從您提供的鏈接中看到JSON,可以發佈正在返回的內容的示例嗎?另外,哈哈@你拉什麼。 – Goose

+1

'這是因爲有多個「定義」'沒有關係,如果你有多個鍵,那麼你應該得到最後一個的價值。但是最可能的'list'是一個數組,或者它不是你認爲的那樣。向我們展示JSON .. – PSL

回答

1

這裏response.list是一個數組。所以你可以簡單地通過索引訪問它:

console.log("Definition: " + response.list[0].definition); 

這應該給你列表中的第一個定義。

+1

這工作完美 - 感謝您的迴應! – user2962388