如何使用JSON JavaScriptSerializer在序列化或反序列化期间捕获错误

我正在检索JSON,但由于其有限的长度(2147483644),我收到此错误。

我怎么能抓到这个错误?

使用JSON JavaScriptSerializer进行序列化或反序列化时出错。 字符串的长度超过maxJsonLength属性上设置的值。

这就是我现在编码的方式。

[HttpGet] public JsonResult GetSearchData(string filter) { IRemediationService svc = new RemediationService(); var data = svc.SearchData(filter); try{ return Json(data, JsonRequestBehavior.AllowGet); }catch(Exception e){ return "Error"; } } 

在MVC 4中,您可以:

 protected override JsonResult GetSearchData(string filter) { IRemediationService svc = new RemediationService(); var data = svc.SearchData(filter); try { return new JsonResult() { Data = data, JsonRequestBehavior = JsonRequestBehavior.AllowGet, MaxJsonLength = Int32.MaxValue }; } catch (Exception e) { return "Error"; } } 

您可以检查数据并修剪对象。

如果没有,也许你可以把它作为一个字符串传回来……

 protected override ActionResult GetSearchData(string filter) { IRemediationService svc = new RemediationService(); var data = svc.SearchData(filter); try { return Content(data.ToString()); } catch (Exception e) { return "Error"; } }