2017-05-23 98 views
1

首先,這是一個完整的新手問題。我真的不知道我在做什麼。XMLHttpRequest - 解析出屬性 - JS

我有一個API返回JustGiving的前10名基金募集者。我可以顯示XML信息,但它只是把所有東西都放在一起。這是JS我到目前爲止有:

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "https://api.justgiving.com/{appid}/v1/event/{eventID}/leaderboard?currency=gbp/", true); 
xhr.responseJSON; 
xhr.send(); 

xhr.onreadystatechange = processRequest; 

function processRequest(e) { 
    if (xhr.readyState == 4 && xhr.status == 200) { 
     document.write(xhr.responseText); 
    } 
} 

我一直看在不同的方式來獲取這些信息輸出到的東西,我可以在網頁上的操作時間。東西可以包裝在一個div中。

肯定它這一點,我需要修改......

document.write(xhr.responseText); 

請幫助或點我在正確的方向。或者如果我完全走錯了方向,請告訴我。這裏可能已經有了一個解決方案,但是由於我的知識非常有限,我可能會把所有的搜索都寫錯了。

的API的文檔https://api.justgiving.com/docs/resources/v1/Leaderboard/GetEventLeaderboard

提前非常感謝。

+0

這取決於什麼樣的API返回,是JSON,XML或別的東西完全?你必須添加一個返回數據的例子 – adeneo

+0

^你提到它給了你XML。如果我們能看到這些數據,我們可能會更好地提供有關如何解析數據的建議。 –

+0

Sure @adeneo @R。麥克馬納曼。它意味着返回XML或JSON。不知道你如何告訴它你更喜歡。 API的文檔是[link](https://api.justgiving.com/docs/resources/v1/Leaderboard/GetEventLeaderboard) 我在codepen上看到的輸出沒有xml或json屬性或格式。只是基本的文字。示例如下: 'http://images.justgiving.com/image/trainer-no-branding_web.jpg?imagetype = frpphoto&trymigrate = true&sourcepath = StockJason' – Underdog89

回答

0

由於你在JS中,所以儘可能避免使用XML。

JustGiving API應該也能夠提供JSON響應,如果您的請求包含適當的標題。

喜歡的東西:

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "https://api.justgiving.com/{appid}/v1/event/{eventID}/leaderboard?currency=gbp/", true); 

// Add accept header to indicate you want JSON 
xhr.setRequestHeader("Accept", "application/json"); 
xhr.send(); 

xhr.onreadystatechange = processRequest; 

function processRequest(e) { 
    if (xhr.readyState == 4 && xhr.status == 200) { 

     // Parse the JSON in the response 
     document.write(JSON.parse(xhr.responseText)); 
    } 
} 
+0

我很好奇爲什麼你建議OP在使用JS時不要使用XML ?不要聲稱他應該這樣做,只是試圖學習一些我顯然無知的東西。 –

+0

XML沒有什麼問題,只是因爲在JavaScript中工作時解析簡單,所以只是個人偏好。通過調用JSON.parse可以輕鬆地將JSON解析爲JS對象,而處理XML可能會更復雜一些。兩種方法都會給出相同的數據,只是歸結爲個人品味! –

+0

當我嘗試這種方法時,它不會輸出任何東西。它只顯示「[object Object]」。任何想法我做錯了什麼? – Underdog89