Utf8JsonReader 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供高性能的 API,以便提供对 UTF-8 编码 JSON 文本的只进和只读访问权限。
public value class Utf8JsonReader
public ref struct Utf8JsonReader
type Utf8JsonReader = struct
Public Structure 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 |
获取值,该值指示要使用哪个 |
IsFinalBlock |
获取 Utf8JsonReader 的此实例的模式,它指示是已提供了所有 JSON 数据,还是随后会提供更多的数据。 |
Position |
如果 Utf8JsonReader 结构使用 ReadOnlySpan<byte> 构造,则获取所提供的 UTF-8 编码输入 ReadOnlySequence<byte> 内的当前 SequencePosition 或默认的 SequencePosition。 |
TokenStartIndex |
获取上次处理的 JSON 令牌开始处的索引(在给定的 UTF-8 编码输入文本中),跳过所有空白。 |
TokenType |
获取 UTF-8 编码 JSON 文本中最后一个处理的 JSON 令牌的类型。 |
ValueIsEscaped |
获取一个值,该值指示当前 ValueSpan 或 ValueSequence 属性是否包含每个 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 令牌值,返回指示其是否匹配的值。 |