Utf8JsonReader 结构

定义

提供高性能的 API,以便提供对 UTF-8 编码 JSON 文本的只进和只读访问权限。

public value class Utf8JsonReader
public ref struct Utf8JsonReader
type Utf8JsonReader = struct
Public Structure Utf8JsonReader
继承
Utf8JsonReader

注解

Utf8JsonReader 按顺序处理文本,不进行缓存,默认情况下严格遵循 JSON RFC

遇到无效 JSON 时 Utf8JsonReader ,它会引发 JsonException 基本错误信息,如行号和字节位置。

由于此类型是 ref 结构,因此它不支持异步。 但是,它确实支持重新进入读取不完整的数据,并在再次显示数据后继续阅读。

若要在阅读或允许跳过批注时设置最大深度,请创建一个实例 JsonReaderOptions 并将其传递给读取器。

有关详细信息,请参阅 如何使用 System.Text.Json 编写自定义序列化程序和反序列化程序

构造函数

Utf8JsonReader(ReadOnlySequence<Byte>, Boolean, JsonReaderState)

初始化 Utf8JsonReader 结构的新实例,该实例用于处理 UTF-8 编码文本的只读序列,并指示输入是否包含要处理的所有文本。

Utf8JsonReader(ReadOnlySequence<Byte>, JsonReaderOptions)

初始化 Utf8JsonReader 结构的新实例,该实例使用指定选项处理 UTF-8 编码文本的只读序列。

Utf8JsonReader(ReadOnlySpan<Byte>, Boolean, JsonReaderState)

初始化 Utf8JsonReader 结构的新实例,该实例用于处理 UTF-8 编码文本的只读范围,并指示输入是否包含要处理的所有文本。

Utf8JsonReader(ReadOnlySpan<Byte>, JsonReaderOptions)

初始化 Utf8JsonReader 结构的新实例,该实例使用指定选项处理 UTF-8 编码文本的只读范围。

属性

BytesConsumed

获取 Utf8JsonReader 的此实例到目前为止使用的总字节数。

CurrentDepth

获取当前标记的深度。

CurrentState

获取当前 Utf8JsonReader 状态,将更多数据传递到 Utf8JsonReader 构造函数。

HasValueSequence

获取值,该值指示要使用哪个 Value 属性来获取令牌值。

IsFinalBlock

获取 Utf8JsonReader 的此实例的模式,它指示是已提供了所有 JSON 数据,还是随后会提供更多的数据。

Position

如果 Utf8JsonReader 结构使用 ReadOnlySpan<byte> 构造,则获取所提供的 UTF-8 编码输入 ReadOnlySequence<byte> 内的当前 SequencePosition 或默认的 SequencePosition

TokenStartIndex

获取上次处理的 JSON 令牌开始处的索引(在给定的 UTF-8 编码输入文本中),跳过所有空白。

TokenType

获取 UTF-8 编码 JSON 文本中最后一个处理的 JSON 令牌的类型。

ValueIsEscaped

获取一个值,该值指示当前 ValueSpanValueSequence 属性是否包含每个 RFC 8259 节 7 的转义序列,因此在使用前需要不转义。

ValueSequence

仅当令牌包含在多个段内时,获取上次处理的令牌的原始值作为输入有效负载的 ReadOnlySequence<byte> 切片。

ValueSpan

如果令牌适合单个段,或者如果读取器是使用 ReadOnlySpan<byte> 中包含的 JSON 有效负载构造的,则获取上次处理的令牌的原始值作为输入有效负载的 ReadOnlySpan<byte> 切片。

方法

CopyString(Span<Byte>)

将当前 JSON 令牌值从源(未转义为 UTF-8 字符串)复制到目标缓冲区。

CopyString(Span<Char>)

将当前 JSON 令牌值从源复制,未转义并转码为 UTF-16 字符缓冲区。

GetBoolean()

从源中将下一个 JSON 令牌值读取为 Boolean

GetByte()

将源中的当前 JSON 令牌值分析为 Byte

GetBytesFromBase64()

分析源中的当前 JSON 令牌值并将 Base64 编码的 JSON 字符串解码为字节数组。

GetComment()

将源中的当前 JSON 令牌值分析为注释,将其转码为 String

GetDateTime()

从源中读取下一个 JSON 令牌值,并将该值解析为 DateTime

GetDateTimeOffset()

从源中读取下一个 JSON 令牌值,并将该值解析为 DateTimeOffset

GetDecimal()

从源中读取下一个 JSON 令牌值,并将该值解析为 Decimal

GetDouble()

从源中读取下一个 JSON 令牌值,并将该值解析为 Double

GetGuid()

从源中读取下一个 JSON 令牌值,并将该值解析为 Guid

GetInt16()

将源中的当前 JSON 令牌值分析为 Int16

GetInt32()

从源中读取下一个 JSON 令牌值,并将该值解析为 Int32

GetInt64()

从源中读取下一个 JSON 令牌值,并将该值解析为 Int64

GetSByte()

将源中的当前 JSON 令牌值分析为 SByte

GetSingle()

从源中读取下一个 JSON 令牌值,并将该值解析为 Single

GetString()

从源中读取下一个 JSON 令牌值,并作为字符串进行反转义和转码。

GetUInt16()

将源中的当前 JSON 令牌值分析为 UInt16

GetUInt32()

从源中读取下一个 JSON 令牌值,并将该值解析为 UInt32

GetUInt64()

从源中读取下一个 JSON 令牌值,并将该值解析为 UInt64

Read()

从输入源中读取下一个 JSON 令牌。

Skip()

跳过当前 JSON 令牌的子级。

TryGetByte(Byte)

尝试将源中的当前 JSON 令牌值分析为 Byte,并返回一个指示操作是否成功的值。

TryGetBytesFromBase64(Byte[])

尝试分析源中的当前 JSON 令牌值,将 Base64 编码 JSON 字符串解码为字节数组,并返回一个指示操作是否成功的值。

TryGetDateTime(DateTime)

尝试将源中的当前 JSON 令牌值分析为 DateTime,并返回一个指示操作是否成功的值。

TryGetDateTimeOffset(DateTimeOffset)

尝试将源中的当前 JSON 令牌值分析为 DateTimeOffset,并返回一个指示操作是否成功的值。

TryGetDecimal(Decimal)

尝试将源中的当前 JSON 令牌值分析为 Decimal,并返回一个指示操作是否成功的值。

TryGetDouble(Double)

尝试将源中的当前 JSON 令牌值分析为 Double,并返回一个指示操作是否成功的值。

TryGetGuid(Guid)

尝试将源中的当前 JSON 令牌值分析为 Guid,并返回一个指示操作是否成功的值。

TryGetInt16(Int16)

尝试将源中的当前 JSON 令牌值分析为 Int16,并返回一个指示操作是否成功的值。

TryGetInt32(Int32)

尝试将源中的当前 JSON 令牌值分析为 Int32,并返回一个指示操作是否成功的值。

TryGetInt64(Int64)

尝试将源中的当前 JSON 令牌值分析为 Int64,并返回一个指示操作是否成功的值。

TryGetSByte(SByte)

尝试将源中的当前 JSON 令牌值分析为 SByte,并返回一个指示操作是否成功的值。

TryGetSingle(Single)

尝试将源中的当前 JSON 令牌值分析为 Single,并返回一个指示操作是否成功的值。

TryGetUInt16(UInt16)

尝试将源中的当前 JSON 令牌值分析为 UInt16,并返回一个指示操作是否成功的值。

TryGetUInt32(UInt32)

尝试将源中的当前 JSON 令牌值分析为 UInt32,并返回一个指示操作是否成功的值。

TryGetUInt64(UInt64)

尝试将源中的当前 JSON 令牌值分析为 UInt64,并返回一个指示操作是否成功的值。

TrySkip()

尝试跳过当前 JSON 令牌的子级。

ValueTextEquals(ReadOnlySpan<Byte>)

比较只读字节范围中 UTF-8 编码文本与源中未转义的 JSON 令牌值,返回指示其是否匹配的值。

ValueTextEquals(ReadOnlySpan<Char>)

比较只读字符范围中文本与源中未转义的 JSON 令牌值,返回指示其是否匹配的值。

ValueTextEquals(String)

比较字符串文本与源中未转义的 JSON 令牌值,返回指示其是否匹配的值。

适用于