Я пытаюсь прочитать одну json запись в память за раз, используя. net core 3.0.
Эта страница: 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?