Newtonsoft.Json – 反序列化大对象时内存不足exception
我有一个问题反序列化大约1GB的JSON文件。 当我运行以下代码时,我得到一个内存不足exception:
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(jsReader); } } }
抛出exception
Newtonsoft.Json.Linq.JTokenWriter.WriteValue(Int64 value)
序列化效果很好,这是我正在使用的代码
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(); } }}
我在反序列化中做错了吗? 你能帮忙建议一种反序列化大json对象的方法吗?
谢谢
根据Newtonsoft.Json性能提示你的方法必须工作(因为你通过流阅读,它应该从你的文件中分成一部分)。 我无法弄清楚为什么你的代码不起作用。
但是你可以尝试另一种方法,这在下一篇文章中用Json.NET解析大记录
上述就是C#学习教程:Newtonsoft.Json – 反序列化大对象时内存不足exception分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1014690.html