gpt4 book ai didi

json.net - 反序列化 JSON 时的进度

转载 作者:行者123 更新时间:2023-12-03 06:23:45 25 4
gpt4 key购买 nike

我正在通过流反序列化一个巨大的 JSON (1.4 GB),因为我不想为了解析而提前将整个内容加载到内存中。工作正常,但需要大约 80 秒,所以我想显示进度。

public JObject DeserializeViaStream(string filename)
{
object obj;
var serializer = new JsonSerializer();
using (var sr = new StreamReader(new FileStream(filename, FileMode.Open)))
{
using (var jsonTextReader = new JsonTextReader(sr))
{
obj = serializer.Deserialize(jsonTextReader);
}
}
return (JObject) obj;
}

我还没有尝试过,但只有一个想法:我可以实现自己的流读取器,它跟踪正在读取的字节并将其与文件长度进行比较。

是否有内置选项或更简单的方法来执行此操作?

最佳答案

我最终使用了我的想法。幸运的是已经有一个 ProgressStream available by Mel Green (archive.org)original URL不再可用。

请注意:

  • 此方法可能无法永远适用于所有情况和所有库。这是因为 Seek() 操作提供随机访问,并且某人可以多次读取该文件。
  • 我无法在此处发布源代码,因为它是在不明确的许可证下发布的。

关于json.net - 反序列化 JSON 时的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445215/

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