2013-07-05 20 views
1

我們試圖將用戶輸入作爲Json返回到服務器以保存在couchbase中,但我們正在努力將有效的Json發送回服務器,它將添加(\)之間「」。如何在jQuery將字符串傳遞到服務器時去除反斜槓

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"); 
     } 

的崗位工作,但如果我們調試,並期待在jsonStuffs,它看起來像這樣

{\"FormName\":\"Form1\"} 

請幫忙,我們在序列化方面做了什麼錯誤?

回答

3

您正在查看字符串,同時在調試器中暫停,這將使用反斜槓\來避免引號""

實際的JSON字符串將是:

{ 「窗體名稱」: 「Form1的」}

打印價值控制檯窗口,它的罰款。

+0

它仍然不能正常工作 –

+0

這表明你的代碼還有其他問題。你應該定義'not working'並用相關信息更新你的問題。你不是說這個帖子工作正常嗎? – DGibbs

+0

是的'後'工作,但它不是拉回有效的JSON,請提供事實證明JSON仍然是什麼? –

0

你在使用JSON.stringify嗎?

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

這就造成了\ sample.txt的\在控制器中。

我刪除JSON.stringify

   data: { "filename" : filename }, 

它解決了該問題對我來說。

相關問題