0

美好的一天,我有以下字符串作为回应:

var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"};
var jsonObj = $.parseJSON(retstr.d);

这个“d”参数是 MS 出于安全原因制作的,所有真实的 json 字符串都作为这个参数的值传递。更多信息在这里

因此,参数已经被 \" 符号转义,当我在参数值中遇到引号时,它无法解析。但是我不能替换双引号。

我陷入了困境,无法解决问题。

4

2 回答 2

0

鉴于您引用的代码,您可以这样做:

var jsonObj = $.parseJSON(retstr.d);
// Then use `jsonObj.param1` and such

...因为您所说retstr的不是字符串,而是具有属性的对象,d, 是字符串(包含 JSON)。

但我完全不确定你引用的内容是否真的是你所拥有的。

于 2013-10-16T07:20:29.957 回答
-1

您无需解析任何内容,只需遍历 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"
});

然后你不需要解析它。

于 2013-10-16T07:19:37.837 回答