我使用Goo.gl URL縮短器來縮短鏈接。我的sed是一個JSON字符串,並將其返回這樣它獲取存儲在xmlHttp.response結果:如何讓JSON成功解析XMLHttpRequest字符串?
"{
"kind": "urlshortener#url",
"id": "http://goo.gl/mR2d",
"longUrl": "http://google.com/"
}"
發送代碼後,我嘗試分析它使用JSON:
xmlHttp.send(jsonStr);
var short_url = JSON.parse(xmlHttp.response).id ;
此代碼在功能運行時,我得到錯誤下面的「輸入意外結束」:
getShortURL("http://google.com");
SyntaxError: Unexpected end of input
arguments: Array[0]
get message: function() { [native code] }
get stack: function() { [native code] }
set message: function() { [native code] }
set stack: function() { [native code] }
type: "unexpected_eos"
__proto__: Error
我原以爲可能有一些問題與字符串中的引號。什麼是解決問題的好方法?
你的意思是:VAR SHORT_URL = JSON.parse(xmlHttp.response.id); 確實eval()的工作? –
JSON周圍沒有真正的引號,是嗎?請發佈一個實際的響應,我不能相信這是無效的JSON – Bergi
你不能用普通的JavaScript做到這一點,因爲調用谷歌的服務需要一個職位,他們不支持JSONP。 – epascarello