当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'"}

请帮忙,我们的序列化有问题吗?

当jQuery将字符串传递给服务器时,如何去掉反斜杠

在调试器中暂停时查看字符串,调试器将用反斜杠'转义引号""

实际的json字符串为:

{"FormName":"Form1"}

将值打印到控制台窗口,这很好。

您在使用JSON.stringify吗?

我有

            var filename = "sample.txt"
            $.ajax({
                ...
                data: { "filename" : JSON.stringify(filename) },
                ...
            });

这导致控制器中出现''sample.txt''。

我删除了JSON.stringify

                data: { "filename" : filename },

它为我解决了这个问题。