Utf8JsonWriter 类

定义

为 UTF-8 编码 JSON 文本的仅进非缓存写入提供高性能 API。

public ref class Utf8JsonWriter sealed : IAsyncDisposable, IDisposable
public sealed class Utf8JsonWriter : IAsyncDisposable, IDisposable
type Utf8JsonWriter = class
    interface IAsyncDisposable
    interface IDisposable
type Utf8JsonWriter = class
    interface IDisposable
    interface IAsyncDisposable
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>)

将预编码的属性名称和原始字节值(作为 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)

将指定为字节的只读范围和 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。

适用于