Asp.net Jquery JSON在参数值中加引号

Asp.net Jquery JSON在参数值中加引号,asp.net,json,jquery,Asp.net,Json,Jquery,您好,我有以下字符串作为响应: var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"}; var jsonObj = $.parseJSON(retstr.d); 这个d参数是由MS出于安全原因生成的,所有实际的json字符串都作为该参数的值传递。更多信息 所以,参数是由\symbol转义的,当我在参数值中遇到引号时,它无法解析。但是我不能用双引号代替

您好,我有以下字符串作为响应:

var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"};
var jsonObj = $.parseJSON(retstr.d);
这个d参数是由MS出于安全原因生成的,所有实际的json字符串都作为该参数的值传递。更多信息

所以,参数是由\symbol转义的,当我在参数值中遇到引号时,它无法解析。但是我不能用双引号代替


我深陷其中,无法解决这个问题。

您不需要解析任何东西,只需循环json结果即可

var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"};
var jsonObj = JSON.parse(retstr);
并获取元素jsonObj.param1 或者检查jsonObj.d.param1

编辑1 如果您有如下jquery

$.ajax({
     contentType: "application/json",
     url: 'http://localhost:16329/Hello',
     dataType: "json"
});

那么您就不需要解析它了。

根据您引用的代码,您可以这样做:

var jsonObj = $.parseJSON(retstr.d);
// Then use `jsonObj.param1` and such
…因为您所称的retstr不是字符串,而是一个具有属性d的对象,该属性是一个包含JSON的字符串


但我根本不确定你引用的是你真正拥有的东西。

retstr不是字符串,你不能在上面使用JSON.parse,而JSON.parse就是$.parseJSON所做的。@t.J.Crowder他得到的响应是JSON,但他可能在jquery中设置了text/string,我猜是这样,所以我使用了.parse方法。@ailmcm:我保证你没有引用的内容。至少,你没有从ASP.Net中得到这些。如果您展示您实际使用的内容,我们可能会帮助您。我肯定您没有引用的内容-至少,您没有从ASP.Net获得这些内容。我猜你为了你的问题已经试着简化了——好冲动!但是做得太过分了。如果您展示了实际使用调试器的屏幕截图,也许我们可以帮助您。