cma*_*e88 6 c# serialization json exception out-of-memory
我有一个问题反序列化大约1GB的JSON文件.当我运行以下代码时,我得到一个内存不足异常:
using (FileStream sr = new FileStream("myFile.json", FileMode.Open, FileAccess.Read))
{
using (StreamReader reader = new StreamReader(sr))
{
using (JsonReader jsReader = new JsonTextReader(reader))
{
JsonSerializer serializer = new JsonSerializer();
dataObject = serializer.Deserialize<T>(jsReader);
}
}
}
Run Code Online (Sandbox Code Playgroud)
抛出异常
Newtonsoft.Json.Linq.JTokenWriter.WriteValue(Int64 value)
Run Code Online (Sandbox Code Playgroud)
序列化效果很好,这是我正在使用的代码
using (StreamWriter reader = new StreamWriter("myFile.json"))
{
using (JsonReader jsWriter = new JsonWriter(reader))
{
JsonTextWriter jsonWriter = new JsonTextWriter(jsWriter) { Formatting = Formatting.Indented };
JsonSerializer ser = new JsonSerializer();
ser.Serialize(jsonWriter, dataObject, dataObject.GetType());
jsonWriter.Flush();
}
}}
Run Code Online (Sandbox Code Playgroud)
我在反序列化中做错了吗?你能帮忙建议一种反序列化大json对象的方法吗?
谢谢
根据Newtonsoft.Json 性能提示,您的方法必须有效(因为您通过流读取,它应该从您的文件中提取一部分)。我不明白为什么你的代码不起作用。
但您可以尝试另一种方法,下一篇文章中将介绍这种方法 -使用 Json.NET 解析大记录
| 归档时间: |
|
| 查看次数: |
9919 次 |
| 最近记录: |