2012-02-23 77 views
1

我無法從場地搜索中讀取JSON數據。這裏是我的代碼:處理JSON結果

xmlhttpRC = new XMLHttpRequest(); 
url = "https://api.foursquare.com/v2/venues/explore?ll="+pointStrr+"&oauth_token=V5PI2GJ0KDOVH2GAHNHJ5DVLMRKNF440FR1N1HPG0XHX2OBQ&v=2015643& 
callback=JSONP"; 
xmlhttpRC.open("GET", url, true); 
xmlhttpRC.onreadystatechange = recCb;  
xmlhttpRC.send(null); 
//return recommendedArr; 
} 

function recCb(data){ 
//console.log(data); 
if(xmlhttpRC.readyState == 4){ 
    if(xmlhttpRC.status == 200){ 
     var recRes = xmlhttpRC.response; 

     console.log(recRes); 

     //console.log(recRes); 
     console.log(recRes.meta.code); 
    } 
} 

}

我得到我從服務器所期望的效應初探,並螢火表明我會返回一個JSON對象,但我不知道如何從訪問裏面的數據這裏。

的console.log(recRes.meta.code)返回錯誤:

「recRes.meta未定義」

我要去哪裏錯了? 我想訪問場館信息,但我只是使用meta.code作爲一個簡單的測試。 這可能很簡單,但我很難過!

在此先感謝, 羅斯。

回答

0
var decodedResp = JSON.parse(recRes); 
if (decodedResp.meta.code === ...) 

JSON對象只是一個JS對象的表示,請參閱;它應該先解析。

+0

感謝回覆的傢伙。使用JSON.parse(recRes)給出錯誤:JSON.parse:意外字符。你認爲它是因爲JSON數據從JSONP開始? – user1229498 2012-02-23 22:51:04

+0

JSONP是另一個故事,如[這裏]聲明(http://stackoverflow.com/questions/3543513/how-to-parse-jsonp-data-returned-from-remote-server) – raina77ow 2012-02-23 23:00:29

+0

我已經要求它爲JSON現在,它是返回JSON(... 但我仍然得到錯誤: JSON.parse:意外的字符 VAR recResD = JSON.parse(recRes); – user1229498 2012-02-23 23:06:18

1

您需要解析JSON。現代的瀏覽器內置JSON.parse,舊版本的IE等 - 你可以理論上使用eval(響應),但它會產生一個安全漏洞。

There is a library解析它,如果你不能依賴於具有現代瀏覽器的用戶。

+0

我會評論下面,但我還沒有足夠的代表尚未。你可以發佈JSON數據返回的層次嗎? – Snuffleupagus 2012-02-23 23:19:45

+0

對不起,隊友只是看到了這一點。通過刪除&callback = JSONP來解決問題。感謝您的意見。有什麼方法我可以給你代表? – user1229498 2012-02-23 23:50:40