Utf8JsonWriter 類別

定義

針對UTF-8編碼 JSON 文字的正向、非快取寫入,提供高效能 API。

public sealed class Utf8JsonWriter : 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>)

寫入預先編碼的屬性名稱和原始位元組值(做為Base64編碼 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)

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

WriteNumber(ReadOnlySpan<Byte>, Double)

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

WriteNumber(ReadOnlySpan<Byte>, Int32)

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

WriteNumber(ReadOnlySpan<Byte>, Int64)

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

WriteNumber(ReadOnlySpan<Byte>, Single)

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

WriteNumber(ReadOnlySpan<Byte>, UInt32)

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

WriteNumber(ReadOnlySpan<Byte>, UInt64)

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

WriteNumber(ReadOnlySpan<Char>, Decimal)

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

WriteNumber(ReadOnlySpan<Char>, Double)

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

WriteNumber(ReadOnlySpan<Char>, Int32)

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

WriteNumber(ReadOnlySpan<Char>, Int64)

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

WriteNumber(ReadOnlySpan<Char>, Single)

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

WriteNumber(ReadOnlySpan<Char>, UInt32)

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

WriteNumber(ReadOnlySpan<Char>, UInt64)

寫入指定為唯讀字元範圍的屬性名稱,以及作為 JSON 物件名稱/值組的一部分 UInt64 值(以 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)

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

WriteString(ReadOnlySpan<Char>, DateTimeOffset)

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

WriteString(ReadOnlySpan<Char>, Guid)

寫入指定為唯讀字元範圍的屬性名稱,以及作為 JSON 物件名稱/值組的一部分 Guid 值(以 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)

設定如何執行從異步可處置專案傳回的工作等候。

適用於

產品 版本
.NET Core 3.0, Core 3.1, 5, 6, 7, 8 (package-provided), 8, 9 (package-provided), 9
.NET Framework 4.7 (package-provided), 4.7.1 (package-provided), 4.7.2 (package-provided), 4.8 (package-provided)
.NET Standard 2.0 (package-provided)