由於種種原因,我從ASP.NET MVC 的內置JSON序列(即返回低於(見編輯的一個交換))到Newtonsoft。直到我開始測試前,我才意識到前者返回JavaScript對象字面值,而Newtonsoft返回JSON格式的字符串。返回JavaScript對象字面,沒有JSON字符串,從ASP.NET MVC端點System.Web.Mvc.JsonResult
對象
我喜歡不必在客戶端解析JSON字符串 - 它已經作爲一個對象字面很方便 - 但我想堅持使用Newtonsoft出於其他技術原因。
例如,而不是看到我的客戶對這個結果......
"{"Errors":["Please enter a valid email address."],"HasErrors":true}"
...我希望看到這樣的結果:
{"Errors":["Please enter a valid email address."],"HasErrors":true} // no quotes
有沒有一種方法,使Newtonsoft返回JS對象文字而不是字符串?
編輯
我的問題被陷害的方式並不是最好的。 JsonResult
類型沒有問題。事實上,解決方案仍然使用它。唯一的問題是默認的Controller.Json
方法,它可以被覆蓋以使用Newtonsoft(Json.NET)而不是內置的序列化程序。
我不熟悉.NET世界 - 是服務器上的Newtonsoft嗎?因爲如果是這樣,你永遠不能從服務器返回一個JS文字。無論如何,都不在網絡請求中。或者當它呈現時嵌入頁面的某個地方? – vlaz
你不能用JSON.Parse(響應)編輯你的JS文件嗎? –
你是如何創建你的JSON響應並使用Json.Net從MVC返回它們的? –