将对象添加到json集合

时间:2017-12-15 00:05:43

标签: c# json file json.net deserialization

我从JSON中的API中获取数据,并使用JSON.NET将其存储在文件中,但最多有250万条记录。它的工作原理如下:

  • 从API获取少量数据并将其添加到List对象
  • 保存在新文件中(如果文件不存在)或OVERRIDE它(如果文件存在)

我的问题是对象列表必须存储大量的od数据(数百万)

我的保存看起来像这样

public bool SaveJSON(string path, TData data,Formatting formatting = Formatting.Indented)
{
        bool success = false;
        while(!success)
        {
            try
            {
                using (StreamWriter file = File.CreateText(path))
                {
                    JsonSerializer serializer = new JsonSerializer();
                    serializer.Formatting = Formatting.Indented;
                    serializer.Serialize(file, data);
                    success = true;
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine("Error : " ex.Message);
            }
        }
        return true;

}

这个JSON文件看起来像

[
   {
     ...
   },
   ...
   {
     ...
   }
]

我知道有文件方法File.AppendText,但是我得到这样的文件

[
   {
     ...
   },
   ...
   {
     ...
   }
]
[
   {
     ...
   }
]

如此非分离的数组,它无法正确反序列化。

我该如何处理?我想过删除最后一行

  

但我发现的所有解决方案都是将整个文件读取到字符串然后对其进行更改。

0 个答案:

没有答案