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>)

将预编码属性名称和原始字节值(作为 Base64 编码的 JSON 字符串)编写为 JSON 对象的名称/值对的一部分。

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

将属性名称和原始字节值(作为 Base 64 编码的 JSON 字符串)写入 JSON 对象的名称/值对。

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

将属性名称和原始字节值(作为 Base 64 编码的 JSON 字符串)写入 JSON 对象的名称/值对。

WriteBase64String(String, ReadOnlySpan<Byte>)

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

配置如何执行从异步可处置项返回的任务的等待。

适用于