Utf8JsonReader
Utf8JsonReader - ref struct,
его нельзя хранить в поле
обычного класса. Байты берут из
Encoding.UTF8.GetBytes.
Документ целиком -
JsonDocument.Parse.
Синтаксис
Utf8JsonReader reader = new Utf8JsonReader(utf8Json);
while (reader.Read())
{
}
Пример
Давайте три раза вызвать
Read подряд:
using System;
using System.Text;
using System.Text.Json;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("{\"Name\":\"abcde\"}");
Utf8JsonReader reader = new Utf8JsonReader(data);
reader.Read();
Console.WriteLine(reader.TokenType);
reader.Read();
Console.WriteLine(reader.TokenType);
reader.Read();
Console.WriteLine(reader.TokenType);
}
}
Результат выполнения кода:
StartObject
PropertyName
String
Пример
Давайте прочитать строковое значение токена:
using System;
using System.Text;
using System.Text.Json;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("{\"Name\":\"abcde\"}");
Utf8JsonReader reader = new Utf8JsonReader(data);
reader.Read();
reader.Read();
reader.Read();
string res = reader.GetString();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте прочитать имя свойства
на токене PropertyName:
using System;
using System.Text;
using System.Text.Json;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("{\"Name\":\"abcde\"}");
Utf8JsonReader reader = new Utf8JsonReader(data);
reader.Read();
reader.Read();
string res = reader.GetString();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"Name"
Смотрите также
-
Utf8JsonWriter,
запись байтов -
Parse,
разбор целиком -
JsonElement,
узел документа -
GetRawText,
сырой фрагмент