JsonSerializer.DeserializeAsync 方法
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
DeserializeAsync(Stream, JsonTypeInfo, CancellationToken) |
將代表單一 JSON 值的 UTF-8 編碼文字讀取至 |
DeserializeAsync(Stream, Type, JsonSerializerOptions, CancellationToken) |
以異步方式將代表單一 JSON 值的 UTF-8 編碼文字讀取至指定類型的實例。 數據流將會讀取為完成。 |
DeserializeAsync(Stream, Type, JsonSerializerContext, CancellationToken) |
將代表單一 JSON 值的 UTF-8 編碼文字讀入 |
DeserializeAsync<TValue>(Stream, JsonTypeInfo<TValue>, CancellationToken) |
將代表單一 JSON 值的 UTF-8 編碼文字讀入 |
DeserializeAsync<TValue>(Stream, JsonSerializerOptions, CancellationToken) |
以異步方式將代表單一 JSON 值的 UTF-8 編碼文字讀入泛型型別參數所指定的型別實例。 數據流將會讀取為完成。 |
將代表單一 JSON 值的 UTF-8 編碼文字讀取至 jsonTypeInfo
所指定的實例。
Stream 將會讀取為完成。
public static System.Threading.Tasks.ValueTask<object?> DeserializeAsync(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default);
static member DeserializeAsync : System.IO.Stream * System.Text.Json.Serialization.Metadata.JsonTypeInfo * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>
Public Function DeserializeAsync (utf8Json As Stream, jsonTypeInfo As JsonTypeInfo, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Object)
參數
- utf8Json
- Stream
要剖析的 JSON 數據。
- jsonTypeInfo
- JsonTypeInfo
要轉換之型別的相關元數據。
- cancellationToken
- CancellationToken
可用來取消讀取作業的 CancellationToken。
傳回
JSON 值的 jsonTypeInfo
表示法。
例外狀況
utf8Json
或 jsonTypeInfo
null
。
JSON 無效,或當 Stream 中有剩餘的數據時。
取消令牌已取消。 此例外狀況會儲存在傳回的工作中。
適用於
.NET 10 及其他版本
產品 | 版本 |
---|---|
.NET | 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10 |
.NET Standard | 2.0 (package-provided) |
以異步方式將代表單一 JSON 值的 UTF-8 編碼文字讀取至指定類型的實例。 數據流將會讀取為完成。
public static System.Threading.Tasks.ValueTask<object?> DeserializeAsync(System.IO.Stream utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default, System.Threading.CancellationToken cancellationToken = default);
public static System.Threading.Tasks.ValueTask<object> DeserializeAsync(System.IO.Stream utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions options = default, System.Threading.CancellationToken cancellationToken = default);
static member DeserializeAsync : System.IO.Stream * Type * System.Text.Json.JsonSerializerOptions * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>
Public Function DeserializeAsync (utf8Json As Stream, returnType As Type, Optional options As JsonSerializerOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Object)
Public Shared Function DeserializeAsync (utf8Json As Stream, returnType As Type, Optional options As JsonSerializerOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Object)
參數
- utf8Json
- Stream
要剖析的 JSON 數據。
- returnType
- Type
要轉換成和傳回的物件型別。
- options
- JsonSerializerOptions
在讀取期間控制行為的選項。
- cancellationToken
- CancellationToken
可用來取消讀取作業的取消標記。
傳回
JSON 值的 returnType
表示法。
例外狀況
utf8Json
或 returnType
null
。
returnType
或其可串行化成員沒有相容的 JsonConverter。
取消令牌已取消。 此例外狀況會儲存在傳回的工作中。
備註
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
這個方法會儲存在工作中,它會傳回方法同步對應項可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException,仍會同步擲回。 如需預存的例外狀況,請參閱 Deserialize(Stream, Type, JsonSerializerOptions)擲回的例外狀況。
適用於
.NET 10 及其他版本
產品 | 版本 |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10 |
.NET Standard | 2.0 (package-provided) |
將代表單一 JSON 值的 UTF-8 編碼文字讀入 returnType
。
Stream 將會讀取為完成。
public static System.Threading.Tasks.ValueTask<object?> DeserializeAsync(System.IO.Stream utf8Json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default);
static member DeserializeAsync : System.IO.Stream * Type * System.Text.Json.Serialization.JsonSerializerContext * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>
Public Function DeserializeAsync (utf8Json As Stream, returnType As Type, context As JsonSerializerContext, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Object)
參數
- utf8Json
- Stream
要剖析的 JSON 數據。
- returnType
- Type
要轉換成和傳回的物件型別。
- context
- JsonSerializerContext
可串行化類型的元數據提供者。
- cancellationToken
- CancellationToken
可用來取消讀取作業的 CancellationToken。
傳回
JSON 值的 returnType
表示法。
例外狀況
utf8Json
、returnType
或 context
null
。
JSON 無效、returnType
與 JSON 不相容,或 Stream 中有剩餘的數據。
returnType
或其可串行化成員沒有相容的 JsonConverter。
所提供 context
上的 GetTypeInfo(Type) 方法未傳回 returnType
的相容 JsonTypeInfo。
取消令牌已取消。 此例外狀況會儲存在傳回的工作中。
備註
這個方法會儲存在工作中,它會傳回方法同步對應項可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException,仍會同步擲回。 如需預存的例外狀況,請參閱 Deserialize(Stream, Type, JsonSerializerContext)擲回的例外狀況。
適用於
.NET 10 及其他版本
產品 | 版本 |
---|---|
.NET | 6, 7, 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10 |
.NET Standard | 2.0 (package-provided) |
將代表單一 JSON 值的 UTF-8 編碼文字讀入 TValue
。
Stream 將會讀取為完成。
public static System.Threading.Tasks.ValueTask<TValue?> DeserializeAsync<TValue>(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default);
static member DeserializeAsync : System.IO.Stream * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'Value>
Public Function DeserializeAsync(Of TValue) (utf8Json As Stream, jsonTypeInfo As JsonTypeInfo(Of TValue), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of TValue)
類型參數
- TValue
要還原串行化 JSON 值的型別。
參數
- utf8Json
- Stream
要剖析的 JSON 數據。
- jsonTypeInfo
- JsonTypeInfo<TValue>
要轉換之型別的相關元數據。
- cancellationToken
- CancellationToken
可用來取消讀取作業的 CancellationToken。
傳回
JSON 值的 TValue
表示法。
例外狀況
utf8Json
或 jsonTypeInfo
null
。
JSON 無效,TValue
與 JSON 不相容,或數據流中有剩餘的數據。
TValue
或其可串行化成員沒有相容的 JsonConverter。
取消令牌已取消。 此例外狀況會儲存在傳回的工作中。
適用於
.NET 10 及其他版本
產品 | 版本 |
---|---|
.NET | 6, 7, 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10 |
.NET Standard | 2.0 (package-provided) |
以異步方式將代表單一 JSON 值的 UTF-8 編碼文字讀入泛型型別參數所指定的型別實例。 數據流將會讀取為完成。
public static System.Threading.Tasks.ValueTask<TValue?> DeserializeAsync<TValue>(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions? options = default, System.Threading.CancellationToken cancellationToken = default);
public static System.Threading.Tasks.ValueTask<TValue> DeserializeAsync<TValue>(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions options = default, System.Threading.CancellationToken cancellationToken = default);
static member DeserializeAsync : System.IO.Stream * System.Text.Json.JsonSerializerOptions * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'Value>
Public Function DeserializeAsync(Of TValue) (utf8Json As Stream, Optional options As JsonSerializerOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of TValue)
Public Shared Function DeserializeAsync(Of TValue) (utf8Json As Stream, Optional options As JsonSerializerOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of TValue)
類型參數
- TValue
JSON 值的目標類型。
參數
- utf8Json
- Stream
要剖析的 JSON 數據。
- options
- JsonSerializerOptions
在讀取期間控制行為的選項。
- cancellationToken
- CancellationToken
令牌,可用來取消讀取作業。
傳回
JSON 值的 TValue
表示法。
例外狀況
TValue
或其可串行化成員沒有相容的 JsonConverter。
utf8Json
null
。
取消令牌已取消。 此例外狀況會儲存在傳回的工作中。
備註
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
適用於
.NET 10 及其他版本
產品 | 版本 |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10 |
.NET Standard | 2.0 (package-provided) |