2013-08-24 45 views
1

我正在爲諾基亞S40平臺開發一個網絡應用程序。我使用Javascript返回以下JSON如何解析JavaScript中的以下JSON?

{ "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "short_url": "http:\/\/bit.ly\/msapps", "long_url": "http:\/\/www.microsoft.com\/web\/gallery\/?wt.mc_id=soc-in-wag-msp-M389", "user_hash": "gbL9jV", "global_hash": "eHgpGh" } ] } } 

我想獲得 「SHORT_URL」 和 「long_url」 值

調用Web服務我使用EVALvar obj = eval ("(" + xmlhttp.responseText + ")");

哪裏xmlhttp.responseText conatains JSON響應。 請幫助

回答

9

嘗試這樣做,工作

var s = '{ "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "short_url": "http://bit.ly/msapps", "long_url": "http://www.microsoft.com/web/gallery/?wt.mc_id=soc-in-wag-msp-M389", "user_hash": "gbL9jV", "global_hash": "eHgpGh" } ] } } ' 

var d = JSON.parse(s); 
console.log(d.data.expand[0].short_url); 
console.log(d.data.expand[0].long_url); 
-3

這個怎麼樣

var json = "{}" // Your JSON string 
json = new Function('return ' + json)(); 
console.log(json.data.expand[0].short_url, json.data.expand[0].long_url); 
+0

我試圖JSON。 data.expand [0] .long_url;似乎沒有工作 – Apoorv

+1

這是一個非常不好的習慣,因爲在某些情況下它可能會危及安全。例如,假設您的服務器中有JavaScript代碼,它從客戶端讀取JSON。如果你這樣做,客戶端可以發送任何JavaScript字符串,它將在服務器上運行。 –

1

這種表達

JSON.parse('{ "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "short_url": "http:\/\/bit.ly\/msapps", "long_url": "http:\/\/www.microsoft.com\/web\/gallery\/?wt.mc_id=soc-in-wag-msp-M389", "user_hash": "gbL9jV", "global_hash": "eHgpGh" } ] } }').data.expand[0].short_url 

返回 「http://bit.ly/msapps