gpt4 book ai didi

c# - JObject 内存不足

转载 作者:行者123 更新时间:2023-12-04 05:15:13 29 4
gpt4 key购买 nike

当我尝试解析一个大约有 200mb 的大型 json 文件时遇到问题。我正在用 Newtonsoft.Json 来做这件事。它给出了 OutOfMemory 异常。

这是我的代码:

using (StreamReader sr=File.OpenText("path"))
{
JObject file= (JObject)JToken.ReadFrom(new JsonTextReader(sr));
}

我该怎么做? (最好使用 JObject)

最佳答案

您可以使用 JsonTextReaderDataReader 的方式阅读文本,如这个问题所述:

Incremental JSON Parsing in C#

您必须编写自己的逻辑来处理 JSON 数据,但这肯定会解决您的内存问题:

using (var reader = new JsonTextReader(File.OpenText("path")))
{
while (reader.Read())
{
// Your logic here (anything you need is in [reader] object), for instance:
if (reader.TokenType == JsonToken.StartArray)
{
// Process array
MyMethodToProcessArray(reader);
}
else if (reader.TokenType == JsonToken.StartObject)
{
// Process object
MyMethodToProcessObject(reader);
}
}
}

您实际上会构建一个递归 JSON 解析器。

关于c# - JObject 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356500/

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