我正在尝试使用 .net core 3.0 一次将单个 json 记录读入内存。
本页:https ://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-apis/
使用阅读器给出这个例子:
byte[] data = Encoding.UTF8.GetBytes(json);
Utf8JsonReader reader = new Utf8JsonReader(data, isFinalBlock: true, state: default);
while (reader.Read())
{
Console.Write(reader.TokenType);
switch (reader.TokenType)
{
case JsonTokenType.PropertyName:
case JsonTokenType.String:
{
string text = reader.GetString();
Console.Write(" ");
Console.Write(text);
break;
}
case JsonTokenType.Number:
{
int value = reader.GetInt32();
Console.Write(" ");
Console.Write(value);
break;
}
// Other token types elided for brevity
}
Console.WriteLine();
}
在示例中,它加载整个字节数组。我主要关心的是内存,因为我正在处理大型 json 文件,我不想只加载正在处理的当前记录(或至少一个较小的块)。
我不确定如何将字节流传递给Utf8JsonReader
并一次读取一条记录。
使用.net core 3.0一次读取一条记录的简单方法是什么?