2012-08-31 74 views
0

我正在使用FQL從Facebook圖API獲取數據。當我通過jQuery向Facebook發送獲取請求時,我得到回調函數中的響應數據,但是當我試圖處理它,我發現響應被視爲一個字符串(我不能遍歷它考慮它作爲字典),但螢火蟲日誌顯示以下json數據。Facebook返回數據作爲字符串,預計JSON數據

console.log(response); 

結果:

{ 
    "data": { 
    "fql_search_result": [{ 
     "aid": "xxxxx", 
    }, { 
     "aid": "xxxxx", 
    }, ] 
    } 
} 

我得到了錯誤,說的響應沒有屬性數據,當我做這個

console.log(response.data) 

爲什麼作爲字符串處理數據,而不是作爲字典?

回答

1

你給的數據類型作爲你通過jQuery的請求「JSON」?

dataType:'json', 

另外,你可以嘗試使用jQuery的短手功能的AJAX GET請求,它的dataType默認爲'json'。

jQuery.getJSON("https://graph.facebook.com/fql?q=SELECT+name+FROM+user+WHERE+uid+%3D+me+%28%29&access_token=<access_token>", function(data){ 
    console.log(data); 
    console.log(data.data[0].name); 
}); 
0

嘗試JSON對象解析它通過使用JSON.parse,然後訪問你的價值觀

var YourJsonObject = JSON.parse("Your String"); 
+0

我認爲即使eval也會這樣做,但是,firebug將它顯示爲json對象。爲什麼jQuery將其視爲字符串? –

+1

我的問題寧願是 - 爲什麼你使用jQuery與API交談,而不是JS SDK? – CBroe