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 |
取得所提供 UTF-8 編碼輸入ReadOnlySequence<位元組> 內的目前 SequencePosition,或是使用 ReadOnlySpan<位元組> 建構 Utf8JsonReader 結構時的預設 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 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 權杖值進行比較,並傳回指出它們是否相符的值。 |