如何处理大量的JsonData?
我返回的数据包含200k+行。
我已经将web配置文件设置为ff。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>我也加了钥匙。
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647 " />问题是,当我在jsonResult上放置一个断点时,它会返回行,但我在浏览器上得到了一个错误,即抛出了'System.OutOfMemoryException‘类型的异常。。
这是控制器上的代码
var jsonResult = Json(listofParticipant);
jsonResult.MaxJsonLength = int.MaxValue;
jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return jsonResult;更新
我还试着使用Stream,这样结果就不会留在内存中--我得到的是OutOfMemoryException
using (StreamWriter sw = new StreamWriter(@"D:\json.txt"))
{
using (JsonWriter writer = new JsonTextWriter(sw))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(writer, listofParticipant);
}
}
var xserializer = new JsonSerializer();
using (var sr = new StreamReader(@"D:\json.txt"))
using (var jsonTextReader = new JsonTextReader(sr))
{
var xx = xserializer.Deserialize<List<PatricipantSearchViewModel>>(jsonTextReader);
return Json(xx, "application/json", Encoding.Default, JsonRequestBehavior.AllowGet);
}我还根据这里的答案添加了这段代码。
protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)
{
return new JsonResult()
{
Data = data,
ContentType = contentType,
ContentEncoding = contentEncoding,
JsonRequestBehavior = behavior,
MaxJsonLength = Int32.MaxValue
};
}发布于 2016-08-27 14:23:38
在web.config中添加以下内容,看看这是否解决了您的问题。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800" />
</requestFiltering>
</security>
</system.webServer>https://stackoverflow.com/questions/39139794
复制相似问题