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

取得所提供 UTF-8 編碼輸入ReadOnlySequence<位元組> 內的目前 SequencePosition,或是使用 ReadOnlySpan<位元組> 建構 Utf8JsonReader 結構時的預設 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 char 緩衝區。

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 權杖值進行比較,並傳回指出它們是否相符的值。

適用於