我假设您想返回对象的JSON表示形式
{ firstname:"John", lastname:"Smith" }但您的方法签名返回一个字符串。ASP.Net框架的序列化 正确地 对字符串进行了序列化
response。换句话说,如果您的功能是
string response = "foo";return response;
如果输出是
{"d":{"foo"}}碰巧
response有双引号需要转义。
您显然只想达到目标。您有2种选择:-
1)
eval在您的Javascript中使用,将字符串变成一个对象,例如
function onSuccessCallback(retval) { var obj = eval(retval.d);}`2)或(这是我的首选解决方案)让您的方法返回一个实际对象,并让框架的JSON序列化为您完成繁重的工作
[WebMethod]public static object getData(Dictionary<string, string> d) { var response = new { firstname = "John", lastname="Smith" }; return response;}您将看到,这会生成您最初可能期望的响应(例如,
{"d":{"firstname":"John", "lastname":"Smith"}}


