【问题标题】:How to convert large JSON file into DataTable in C#?如何在 C# 中将大型 JSON 文件转换为 DataTable?
【发布时间】:2015-05-02 13:54:15
【问题描述】:

我有一个大的 JSON 文件(大约 1.5 GB),我想将它转换为 DataTable。但我想做的是首先我应该阅读它,然后将 DeserializeObject 读取为 DataTable。这是我的代码:

StreamReader read = new StreamReader(@"C:\Users\Reza\Downloads\yelp_dataset_challenge_academic_dataset\yelp_dataset_challenge_academic_dataset\yelp_dataset_challenge_academic_dataset\yelp_academic_dataset_review.json");
        string json = read.ReadToEnd();        
        DataTable tester = JsonConvert.DeserializeObject<DataTable>(json);
        dataGridView1.DataSource = tester;

但是这段代码给了我错误并显示 System.OutOfMemoryException 我该怎么办?

【问题讨论】:

标签: c# json datatable json.net


【解决方案1】:

从我通过查看 JsonConvert 方法看到的情况来看,它不包含接受流作为输入的方法 - 似乎只有字符串。 所以 - 坏消息 - 这不会是直截了当的。

您可能需要以某种方式将字符串分成更小的块,然后再进行转换。

我在这里找到了一篇描述类似过程的文章:

http://www.drdobbs.com/windows/parsing-big-records-with-jsonnet/240165316?pgno=1

【讨论】:

  • 感谢您的回答,但您使用 Stream 或字符串并不重要,我也使用 string x = File.ReadAllText(),但由于大小,它给了我错误。
  • 是的,我的要求是一次读取所有数据并使用表创建数据集并创建 SQL 表..但是它抛出内存异常..请告知..
猜你喜欢
  • 2011-07-12
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2016-04-12
  • 2018-07-14
相关资源
最近更新 更多