当我试图解析一个包含200mb的大型json文件时,我遇到了一个问题。我要和Newtonsoft.Json一起做。它给出了OutOfMemory异常。
这是我的代码:
using (StreamReader sr=File.OpenText("path"))
{
JObject file= (JObject)JToken.ReadFrom(new JsonTextReader(sr));
}我该怎么做?(最好使用JObject )
发布于 2013-01-16 18:56:45
您可以使用JsonTextReader以DataReader方式读取文本,如以下问题所述:
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解析器。
https://stackoverflow.com/questions/14356500
复制相似问题