我处于严重的困境中。我用什么样的服务将对象转换为JSON?
Frist情景:
我使用的是Microsoft的序列化程序,代码将是这样的:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Get(string param)
{
return Json(result);
}
第二种情况:
我使用Newtonsoft,示例代码:
[HttpPost]
[ValidateAntiForgeryToken]
public string Get(string param)
{
return JsonConvert.SerializeObject(result);
}
我该怎么办?谁更好,更安全或更快?
我尝试在文档中找到响应,但我仍有疑问。
答案 0 :(得分:1)
之前的回答者提出了一个很好的观点,但我可以根据我解决问题的方式提供答案。
在我的控制器中,我有一个实际在文件中查找json的路由/函数,但你也可以使用Newtonsoft nuget包代码序列化一个对象。
public ActionResult XData(string id)
{
string dir = WebConfigurationManager.AppSettings["X_Path"];
//search for the file
if (Directory.Exists(dir) && System.IO.File.Exists(Path.Combine(dir, id, "X.json")))
{
//read the file
string contents = System.IO.File.ReadAllText(Path.Combine(dir, id, "X.json"));
//return contents of the file as json
return Content(contents, "application/json");
}
return new HttpNotFoundResult();
}
答案 1 :(得分:1)
框架的JsonResult
在99%的时间都是合适的。已经证明JSON.NET更快,但序列化不是典型的瓶颈。所以,除非你需要JSON.NET坚持默认。顺便说一句,你的第二个场景不会返回application/json
内容,而是text/html
。