gpt4 book ai didi

c# - Newtonsoft.Json - 反序列化大对象时出现内存不足异常

转载 作者:太空狗 更新时间:2023-10-29 21:43:51 30 4
gpt4 key购买 nike

我在反序列化大约 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);
}
}
}

异常由

抛出
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 Performance Tips您的方法必须有效(因为您是通过流读取的,它应该从您的文件中提取一部分)。我不明白为什么您的代码不起作用。

但您可以尝试另一种方法,这将在下一篇文章中介绍 - Parsing Big Records with Json.NET

关于c# - Newtonsoft.Json - 反序列化大对象时出现内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868388/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com