我想通过ajax将JSON字符串发送到[WebMethod]
。我的JSON值包含双引号("
)。在js中,我创建了一个对象,并使用JSON.stringify(my_object)
将其转换为JSON。控制台显示格式正确的JSON(双引号用\
掩盖),jsonlint.com确认它。
但问题出现在[WebMethod]
中。经过数小时的调试后,我发现它忽略了蒙版"
,并将它们视为正常"
。所以我正确的JSON格式的字符串变得不是JSON格式的字符串。
有没有办法解决这个问题?更改我的输入字符串不是一个选项(我不能摆脱"
)。
这里有一些代码:
ajax请求:
$.ajax({
type: 'POST',
url: 'Test_Page.aspx/Test',
data: "{json: '" + JSON.stringify(json_string) + "'}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {},
error: function (msg) {}
});
网络方法:
[WebMethod]
public static string Test(string json) {
return Newtonsoft.Json.JsonConvert.SerializeObject(Other_Function(json));
}
答案 0 :(得分:2)
试试这个:
$.ajax({
type: 'POST',
url: 'Test_Page.aspx/Test',
data: JSON.stringify({json: json_string}),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {},
error: function (msg) {}
});