Utf8JsonWriter 類別

定義

提供高效能 API,以便對 UTF-8 編碼的 JSON 文字進行非快取的順向寫入。

public ref class Utf8JsonWriter sealed : IAsyncDisposable, IDisposable
public sealed class Utf8JsonWriter : IAsyncDisposable, IDisposable
type Utf8JsonWriter = class
    interface IAsyncDisposable
    interface IDisposable
Public NotInheritable Class Utf8JsonWriter
Implements IAsyncDisposable, IDisposable
繼承
Utf8JsonWriter
實作

備註

Utf8JsonWriter 依預設會循序寫入文字,且預設會遵守 JSON RFC,但撰寫批註除外。

啟用驗證時嘗試寫入無效 JSON 的方法,會擲 InvalidOperationException 回具有內容特定錯誤訊息的 。

若要能夠使用縮排和空白字元來格式化輸出,若要略過驗證,或自訂逸出行為,請建立 的 JsonWriterOptions 實例,並將其傳入寫入器。

如需詳細資訊,請參閱 如何使用 System.Text.Json 撰寫自訂序列化程式和還原序列化程式

建構函式

Utf8JsonWriter(IBufferWriter<Byte>, JsonWriterOptions)

使用指定的 IBufferWriter<T> 來將輸出寫入和自訂選項,藉以將 Utf8JsonWriter 類別的新執行個體初始化。

Utf8JsonWriter(Stream, JsonWriterOptions)

使用指定的串流來將輸出寫入和自訂選項,藉以將 Utf8JsonWriter 類別的新執行個體初始化。

屬性

BytesCommitted

取得目前執行個體到目前為止認可至輸出的位元組總數。

BytesPending

取得 Utf8JsonWriter 到目前為止所寫入但尚未排清到輸出並認可的位元組數目。

CurrentDepth

取得目前權杖的深度。

Options

取得使用此執行個體寫入 JSON 時的自訂行為,指出是否要在寫入時將輸出格式化、是否要略過結構化 JSON 驗證,以及要逸出哪些字元。

方法

Dispose()

認可尚未排清的任何剩餘 JSON 文字,並釋出目前執行個體使用的所有資源。

DisposeAsync()

以非同步方式認可尚未排清的任何剩餘 JSON 文字,並釋出目前執行個體使用的所有資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Flush()

認可到目前為止所寫入的 JSON 文字,以便向輸出目的地顯示。

FlushAsync(CancellationToken)

以非同步方式認可到目前為止所寫入的 JSON 文字,以便向輸出目的地顯示。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Reset()

重設此執行個體的內部狀態,使其能重複使用。

Reset(IBufferWriter<Byte>)

重設此執行個體的內部狀態,使其能重複用於 IBufferWriter<T> 的新執行個體。

Reset(Stream)

重設此執行個體的內部狀態,使其能重複用於 Stream 的新執行個體。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
WriteBase64String(JsonEncodedText, ReadOnlySpan<Byte>)

寫入預先編碼的屬性名稱和原始位元組值 (以 Base 64 編碼的 JSON 字串形式),成為 JSON 物件名稱/值組的一部分。

WriteBase64String(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

寫入屬性名稱和原始位元組值 (以 Base64 編碼 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteBase64String(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

寫入屬性名稱和原始位元組值 (以 Base64 編碼 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteBase64String(String, ReadOnlySpan<Byte>)

寫入屬性名稱和原始位元組值 (以 Base64 編碼 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteBase64StringValue(ReadOnlySpan<Byte>)

以 Base64 編碼 JSON 字串將原始位元組值寫入為 JSON 陣列元素。

WriteBoolean(JsonEncodedText, Boolean)

寫入預先編碼的屬性名稱和 Boolean 值 (以 JSON 常值 truefalse),作為 JSON 物件名稱/值組的一部分。

WriteBoolean(ReadOnlySpan<Byte>, Boolean)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Boolean 值 (以 JSON 常值 truefalse),作為 JSON 物件名稱/值組的一部分。

WriteBoolean(ReadOnlySpan<Char>, Boolean)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Boolean 值 (以 JSON 常值 truefalse),作為 JSON 物件名稱/值組的一部分。

WriteBoolean(String, Boolean)

寫入屬性名稱 (指定為字串) 和 Boolean 值 (以 JSON 常值 truefalse),作為 JSON 物件名稱/值組的一部分。

WriteBooleanValue(Boolean)

寫入 Boolean 值 (以 JSON 常值 truefalse),作為 JSON 陣列的元素。

WriteCommentValue(ReadOnlySpan<Byte>)

寫入 UTF-8 文字值作為 JSON 註解。

WriteCommentValue(ReadOnlySpan<Char>)

寫入 UTF-16 文字值作為 JSON 註解。

WriteCommentValue(String)

寫入字串文字值作為 JSON 註解。

WriteEndArray()

寫入 JSON 陣列的結尾。

WriteEndObject()

寫入 JSON 物件的結尾。

WriteNull(JsonEncodedText)

寫入預先編碼的屬性名稱和 JSON 常值 null,作為 JSON 物件名稱/值組的一部分。

WriteNull(ReadOnlySpan<Byte>)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 JSON 常值 null,作為 JSON 物件名稱/值組的一部分。

WriteNull(ReadOnlySpan<Char>)

寫入屬性名稱 (指定為唯讀字元範圍) 和 JSON 常值 null,作為 JSON 物件名稱/值組的一部分。

WriteNull(String)

寫入屬性名稱 (指定為字串) 和 JSON 常值 null,作為 JSON 物件名稱/值組的一部分。

WriteNullValue()

將 JSON 常值 Null 寫入為 JSON 陣列的元素。

WriteNumber(JsonEncodedText, Decimal)

寫入預先編碼的屬性名稱和 Decimal 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, Double)

寫入預先編碼的屬性名稱和 Double 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, Int32)

寫入預先編碼的屬性名稱和 Int32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, Int64)

寫入預先編碼的屬性名稱和 Int64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, Single)

寫入預先編碼的屬性名稱和 Single 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, UInt32)

寫入預先編碼的屬性名稱和 UInt32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(JsonEncodedText, UInt64)

寫入預先編碼的屬性名稱和 UInt64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, Decimal)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Decimal 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, Double)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Double 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, Int32)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Int32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, Int64)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Int64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, Single)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 Single 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, UInt32)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 UInt32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Byte>, UInt64)

寫入屬性名稱 (指定為唯讀位元組範圍) 和 UInt64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, Decimal)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Decimal 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, Double)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Double 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, Int32)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Int32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, Int64)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Int64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, Single)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Single 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, UInt32)

寫入屬性名稱 (指定為唯讀字元範圍) 和 UInt32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(ReadOnlySpan<Char>, UInt64)

寫入屬性名稱 (指定為唯讀字元範圍) 和 UInt64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, Decimal)

寫入屬性名稱 (指定為字串) 和 Decimal 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, Double)

寫入屬性名稱 (指定為字串) 和 Double 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, Int32)

寫入屬性名稱 (指定為字串) 和 Int32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, Int64)

寫入屬性名稱 (指定為字串) 和 Int64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, Single)

寫入屬性名稱 (指定為字串) 和 Single 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, UInt32)

寫入屬性名稱 (指定為字串) 和 UInt32 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumber(String, UInt64)

寫入屬性名稱 (指定為字串) 和 UInt64 值 (以 JSON 數字),作為 JSON 物件名稱/值組的一部分。

WriteNumberValue(Decimal)

寫入 Decimal 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(Double)

寫入 Double 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(Int32)

寫入 Int32 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(Int64)

寫入 Int64 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(Single)

寫入 Single 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(UInt32)

寫入 UInt32 值 (以 JSON 數字),作為 JSON 陣列的項目。

WriteNumberValue(UInt64)

寫入 UInt64 值 (以 JSON 數字),作為 JSON 陣列的項目。

WritePropertyName(JsonEncodedText)

寫入預先編碼的屬性名稱 (以 JSON 字串形式),作為 JSON 物件名稱/值組的第一部分。

WritePropertyName(ReadOnlySpan<Byte>)

寫入 UTF-8 屬性名稱 (以 JSON 字串形式),作為 JSON 物件名稱/值組的第一部分。

WritePropertyName(ReadOnlySpan<Char>)

寫入屬性名稱 (以 JSON 字串形式),作為 JSON 物件名稱/值組的第一部分。

WritePropertyName(String)

寫入屬性名稱 (以 JSON 字串形式),作為 JSON 物件名稱/值組的第一部分。

WriteRawValue(ReadOnlySequence<Byte>, Boolean)

將輸入寫入為 JSON 內容。 輸入內容必須是單一完整的 JSON 值。

WriteRawValue(ReadOnlySpan<Byte>, Boolean)

將輸入寫入為 JSON 內容。 輸入內容必須是單一完整的 JSON 值。

WriteRawValue(ReadOnlySpan<Char>, Boolean)

將輸入寫入為 JSON 內容。 輸入內容必須是單一完整的 JSON 值。

WriteRawValue(String, Boolean)

將輸入寫入為 JSON 內容。 輸入內容必須是單一完整的 JSON 值。

WriteStartArray()

寫入 JSON 陣列的開頭。

WriteStartArray(JsonEncodedText)

以預先編碼的屬性名稱作為索引鍵,寫入 JSON 陣列的開頭。

WriteStartArray(ReadOnlySpan<Byte>)

以屬性名稱 (指定為唯讀位元組範圍) 作為索引鍵,寫入 JSON 陣列的開頭。

WriteStartArray(ReadOnlySpan<Char>)

以屬性名稱 (指定為唯讀字元範圍) 作為索引鍵,寫入 JSON 陣列的開頭。

WriteStartArray(String)

以屬性名稱 (指定為字串) 作為索引鍵,寫入 JSON 陣列的開頭。

WriteStartObject()

寫入 JSON 物件的開頭。

WriteStartObject(JsonEncodedText)

以預先編碼的屬性名稱作為索引鍵,寫入 JSON 物件的開頭。

WriteStartObject(ReadOnlySpan<Byte>)

以屬性名稱 (指定為唯讀位元組範圍) 作為索引鍵,寫入 JSON 物件的開頭。

WriteStartObject(ReadOnlySpan<Char>)

寫入 JSON 物件的開頭,並將屬性名稱指定為唯讀字元範圍做為索引鍵。

WriteStartObject(String)

以屬性名稱 (指定為字串) 作為索引鍵,寫入 JSON 物件的開頭。

WriteString(JsonEncodedText, DateTime)

寫入預先編碼的屬性名稱和 DateTime 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, DateTimeOffset)

寫入預先編碼的屬性名稱和 DateTimeOffset 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, Guid)

寫入預先編碼的屬性名稱和 Guid 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, JsonEncodedText)

寫入預先編碼的屬性名稱和預先編碼的值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, ReadOnlySpan<Byte>)

寫入預先編碼的屬性名稱和 UTF-8 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, ReadOnlySpan<Char>)

寫入預先編碼的屬性名稱和文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(JsonEncodedText, String)

寫入預先編碼的屬性名稱和字串文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, DateTime)

寫入 UTF-8 屬性名稱和 DateTime 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, DateTimeOffset)

寫入 UTF-8 屬性名稱和 DateTimeOffset 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, Guid)

寫入 UTF-8 屬性名稱和 Guid 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, JsonEncodedText)

寫入 UTF-8 屬性名稱和預先編碼的值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

寫入 UTF-8 屬性名稱和 UTF-8 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, ReadOnlySpan<Char>)

寫入 UTF-8 屬性名稱和 UTF-16 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Byte>, String)

寫入 UTF-8 屬性名稱和字串文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, DateTime)

寫入屬性名稱 (指定為唯讀字元範圍) 和 DateTime 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, DateTimeOffset)

寫入屬性名稱 (指定為唯讀字元範圍) 和 DateTimeOffset 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, Guid)

寫入屬性名稱 (指定為唯讀字元範圍) 和 Guid 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, JsonEncodedText)

寫入屬性名稱和預先編碼的值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

寫入 UTF-16 屬性名稱和 UTF-8 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

寫入 UTF-16 屬性名稱和 UTF-16 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(ReadOnlySpan<Char>, String)

寫入 UTF-16 屬性名稱和字串文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, DateTime)

寫入屬性名稱 (指定為字串) 和 DateTime 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, DateTimeOffset)

寫入屬性名稱 (指定為字串) 和 DateTimeOffset 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, Guid)

寫入屬性名稱 (指定為字串) 和 Guid 值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, JsonEncodedText)

寫入屬性名稱和預先編碼的值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, ReadOnlySpan<Byte>)

寫入屬性名稱 (指定為字串) 和 UTF-8 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, ReadOnlySpan<Char>)

寫入屬性名稱 (指定為字串) 和 UTF-16 文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteString(String, String)

寫入屬性名稱 (指定為字串) 和字串文字值 (以 JSON 字串),作為 JSON 物件名稱/值組的一部分。

WriteStringValue(DateTime)

寫入 DateTime 值 (以 JSON 字串),作為 JSON 陣列的項目。

WriteStringValue(DateTimeOffset)

寫入 DateTimeOffset 值 (以 JSON 字串),作為 JSON 陣列的項目。

WriteStringValue(Guid)

寫入 Guid 值 (以 JSON 字串),作為 JSON 陣列的項目。

WriteStringValue(JsonEncodedText)

寫入預先編碼的文字值 (以 JSON 字串),作為 JSON 陣列的元素。

WriteStringValue(ReadOnlySpan<Byte>)

寫入 UTF-8 文字值 (以 JSON 字串),作為 JSON 陣列的項目。

WriteStringValue(ReadOnlySpan<Char>)

寫入 UTF-16 文字值 (以 JSON 字串),作為 JSON 陣列的項目。

WriteStringValue(String)

寫入字串文字值 (以 JSON 字串),作為 JSON 陣列的項目。

擴充方法

ConfigureAwait(IAsyncDisposable, Boolean)

設定如何執行從非同步可處置項目傳回的工作 await。

適用於