如何使用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"; } }