我正在读取一个外部数据文件,用于在gz文件中压缩处理(在S3中托管)。它包含json对象(每行1个,每个文件数百万行)作为下面的模拟数据示例
{"a":"v1","b":"v2"}
{"a":"v3","b":"v2"}
我正在使用以下代码来处理此
JsonSerializer serializer = new JsonSerializer();
using (GZipStream decompressionStream = new GZipStream(data, CompressionMode.Decompress))
{
using (StreamReader sr = new StreamReader(decompressionStream))
{
using (var reader = new JsonTextReader(sr))
{
while(reader.Read())
{
if(reader.TokenType == JsonToken.StartObject)
{
var o = serializer.Deserialize<DataObject>(reader);
}
}
}
}
}
DataObject只是一个将数据映射到的POCO数据对象。第一次迭代完美地工作但是我在reader.Read()上的第二次执行时遇到异常。
Additional text encountered after finished reading JSON content
我认为这可能是由于每个json对象末尾的换行符,但不确定如何解决。
非常感谢任何帮助