2010-01-12 82 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