如何让Ajax.Net PageMethod返回JSON

时间:2010-01-12 21:43:17

标签: asp.net ajax json pagemethods

我使用AJAX.Net来调用ASP.Net PageMethod,它返回JSON序列化的JSON数据

{"d":"[{\"Fromaddress\":\"testfrom1@test.com\",\"Toaddress\":\"testto1@test.com\"},{\"Fromaddress\":\"testfrom2@test.com\",\"Toaddress\":\"testto2@test.com\"}]"}

响应标头将内容类型声明为

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

但是,数据仅作为字符串提供,并且似乎不是来自javascript的JSON数据。我需要做什么才能将返回的数据用作javascript的JSON?

1 个答案:

答案 0 :(得分: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 ...我相信还有其他人可以选择,并且它们的工作方式非常相似。