0
JsonDataの大きなセットを処理する方法は?
私が返すデータには、200k +行が含まれています。MVCで大量のJsonデータを処理する方法は?
すでにWeb設定ファイルをffに設定しています。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
Iveもキーを追加しました。
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647 " />
問題
は、私はそれが行を返しますが、私は型「System.OutOfMemoryExceptionに」の 例外がスローされたことを言って、ブラウザ上でエラーを取得しています化するJsonResult上のブレークポイントを置くときです。。私も結果はまだ私は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);
}
を得ているメモリに座ってしないように
Stream
を使用しようとしたコントローラ
var jsonResult = Json(listofParticipant);
jsonResult.MaxJsonLength = int.MaxValue;
jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return jsonResult;
UPDATE
の相続人は私のコード
私はまた、ここの答えに基づいてこのコードを追加しました。
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
};
}
あなたはJSON.NetかのStackOverflowのJSONデシリアライザを使用してみましたし、代わりにテキストを戻してくださいするJsonResult returiningのがありますか? –
ええJSON.Netを試してみましたが、200k行のリストをシリアライズするとSystem.OutOfMemoryExceptionが返されます –
これは大量のデータであり、多くのメモリが使用されることになります。データを「ページング」する能力はありますか? –