首页 > 解决方案 > Newtonsoft.Json 内存不足异常

问题描述

我面临一个奇怪的问题。过去我在反序列化巨大的 JSON 文件时没有遇到任何问题,但现在我有以下代码:

 private JObject ReadJsonFile(string pathToFile)
    {
        JObject jsonObject = null;
        try
        {
            using (FileStream s =new FileStream(pathToFile, FileMode.Open, FileAccess.Read))
            using (StreamReader sr = new StreamReader(s))
            using (JsonReader reader = new JsonTextReader(sr))
            {
                JsonSerializer serializer = new JsonSerializer();
                jsonObject = serializer.Deserialize<JObject>(reader);                   
            }
           
        }
        catch (Exception exc)
        {
            _log.Error($"Error during reading file {exc}");
        }
        return jsonObject;
    }

jsonObject = serializer.Deserialize<JObject>(reader);尽管 JSON 文件大约 20 MB,但在运行时行中时不时 会抛出内存不足,这很奇怪。有没有人有类似的问题?

该文件有很多列;当我在 Notepad++ 中打开它时,它在一行中显示 8 099 893 个字符。也许有这样的情况?

标签: c#.netjson.netout-of-memory

解决方案


推荐阅读