当jQuery将字符串传递给服务器时,如何去掉反斜杠
本文关键字:何去掉 服务器 jQuery 字符串 | 更新日期: 2023-09-27 18:21:04
我们试图将用户输入作为Json返回到服务器以保存在couchbase中,但我们很难将有效的Json发送回服务器,它在"之间添加了('')。
Json
var fileToJS = {
"FormName": "Form1",
"FormBody": //Nested, complex json continued
}
这是Jquery的帖子:
$('.sendIt').click(function () {
alert('sendIt')
var back = JSON.stringify(fileToJS);
var url = "../Home/updateFormSave";
$.post(url, { jsonStuffs: back}, function (data) {
alert('qq');
});
});
控制器:
[HttpPost]
public ActionResult updateFormSave(string jsonStuffs)
{
//Save to couchbase
FormRepository formRep = new FormRepository();
//string formIdAppended = formID + "-" + User.Identity.Name;
JavaScriptSerializer invalidJson = new JavaScriptSerializer();
dynamic validJson = invalidJson.DeserializeObject(jsonStuffs);
bool JsonForm = formRep.SaveForm("12345", validJson );
ViewBag.msg = jsonStuffs;
return View("updateFormSavedSuccess");
}
这篇文章是有效的,但如果我们调试并查看jsonStuff,它看起来像这个
{'"FormName'":'"Form1'"}
请帮忙,我们的序列化有问题吗?
在调试器中暂停时查看字符串,调试器将用反斜杠'
转义引号""
。
实际的json字符串为:
{"FormName":"Form1"}
将值打印到控制台窗口,这很好。
您在使用JSON.stringify吗?
我有
var filename = "sample.txt"
$.ajax({
...
data: { "filename" : JSON.stringify(filename) },
...
});
这导致控制器中出现''sample.txt''。
我删除了JSON.stringify
data: { "filename" : filename },
它为我解决了这个问题。