由于种种原因,我从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返回它们的? –