2010-01-12 119 views
3

我使用的是AJAX.Net調用一個ASP.Net PageMethod的,它返回JSON序列JSON數據如何獲得Ajax.Net PageMethod的返回JSON

{"d":"[{\"Fromaddress\":\"[email protected]\",\"Toaddress\":\"[email protected]\"},{\"Fromaddress\":\"[email protected]\",\"Toaddress\":\"[email protected]\"}]"} 

響應頭規定的內容類型

"Content-Type application/json; charset=utf-8" 

但是,數據只是以字符串的形式提供,並且似乎不可用作來自JavaScript的JSON數據。我需要做什麼來處理從JavaScript返回的數據作爲JSON?

+1

當在JavaScript中使用'PageMethods.Function()'語法時,數據將自動轉換爲對象 – 2010-01-12 22:05:36

回答

4
var myData = eval('(' + text + ')'); 

雖然這可能是一個安全風險。相反,你可能想使用一個JSON解析器,像這樣的一個可用的形式https://github.com/douglascrockford/JSON-js/blob/master/json2.js

然後,你喜歡的符號:

var myData = JSON.parse(text); 

http://www.json.org/js.html更多的信息在這個特別的解析器......我相信有其他人可以選擇,而且他們的工作非常相似。

+2

另外 - 這是一個有用的鏈接,介紹如何使用瀏覽器內置的JSON解析:http://encosia.com/ 2009/07/07 /改善,jQuery的JSON-性能和安全/ – James 2010-01-12 22:01:26