共用方式為


JsonSerializer.Deserialize 方法

定義

多載

Deserialize(Stream, JsonTypeInfo)

將代表單一 JSON 值的 UTF-8 編碼文字讀取至 jsonTypeInfo所指定的實例。 Stream 將會讀取為完成。

Deserialize(Utf8JsonReader, Type, JsonSerializerContext)

從提供的讀取器讀取一個 JSON 值(包括物件或陣列)讀入 returnType

Deserialize(JsonNode, Type, JsonSerializerContext)

將表示單一 JSON 值的 JsonNode 轉換成 returnType

Deserialize(JsonNode, Type, JsonSerializerOptions)

將表示單一 JSON 值的 JsonNode 轉換成 returnType

Deserialize(JsonElement, Type, JsonSerializerContext)

將表示單一 JSON 值的 JsonElement 轉換成 returnType

Deserialize(JsonElement, Type, JsonSerializerOptions)

將表示單一 JSON 值的 JsonElement 轉換成 returnType

Deserialize(JsonDocument, Type, JsonSerializerContext)

將表示單一 JSON 值的 JsonDocument 轉換成 returnType

Deserialize(JsonDocument, Type, JsonSerializerOptions)

將表示單一 JSON 值的 JsonDocument 轉換成 returnType

Deserialize(String, Type, JsonSerializerContext)

將代表單一 JSON 值的文字剖析為 returnType

Deserialize(String, Type, JsonSerializerOptions)

將代表單一 JSON 值的文字剖析為指定型別的實例。

Deserialize(ReadOnlySpan<Char>, Type, JsonSerializerContext)

將代表單一 JSON 值的文字剖析為 returnType

Deserialize(ReadOnlySpan<Char>, Type, JsonSerializerOptions)

將代表單一 JSON 值的文字剖析為指定型別的實例。

Deserialize(Utf8JsonReader, Type, JsonSerializerOptions)

從提供的讀取器讀取一個 JSON 值(包括物件或陣列),並將它轉換成指定類型的實例。

Deserialize(ReadOnlySpan<Byte>, Type, JsonSerializerOptions)

將代表單一 JSON 值的 UTF-8 編碼文字剖析成指定類型的實例。

Deserialize(Stream, Type, JsonSerializerContext)

將代表單一 JSON 值的 UTF-8 編碼文字讀入 returnType。 Stream 將會讀取為完成。

Deserialize(Stream, Type, JsonSerializerOptions)

將代表單一 JSON 值的 UTF-8 編碼文字讀入 returnType。 Stream 將會讀取為完成。

Deserialize(Utf8JsonReader, JsonTypeInfo)

將一個 JSON 值(包括物件或數位)從提供的讀取器讀取到 jsonTypeInfo所指定的實例。

Deserialize(JsonNode, JsonTypeInfo)

將代表單一 JSON 值的 JsonNode 轉換成 jsonTypeInfo所指定的實例。

Deserialize(JsonElement, JsonTypeInfo)

將代表單一 JSON 值的 JsonElement 轉換成 jsonTypeInfo所指定的實例。

Deserialize(JsonDocument, JsonTypeInfo)

將代表單一 JSON 值的 JsonDocument 轉換成 jsonTypeInfo所指定的實例。

Deserialize(String, JsonTypeInfo)

將代表單一 JSON 值的文字剖析為 jsonTypeInfo所指定的實例。

Deserialize(ReadOnlySpan<Char>, JsonTypeInfo)

將代表單一 JSON 值的文字剖析為 jsonTypeInfo所指定的實例。

Deserialize(ReadOnlySpan<Byte>, Type, JsonSerializerContext)

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 returnType

Deserialize(ReadOnlySpan<Byte>, JsonTypeInfo)

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 jsonTypeInfo所指定的實例。

Deserialize<TValue>(JsonElement, JsonSerializerOptions)

將表示單一 JSON 值的 JsonElement 轉換成 TValue

Deserialize<TValue>(JsonElement, JsonTypeInfo<TValue>)

將表示單一 JSON 值的 JsonElement 轉換成 TValue

Deserialize<TValue>(Utf8JsonReader, JsonTypeInfo<TValue>)

從提供的讀取器讀取一個 JSON 值(包括物件或陣列)讀入 TValue

Deserialize<TValue>(JsonNode, JsonTypeInfo<TValue>)

將表示單一 JSON 值的 JsonNode 轉換成 TValue

Deserialize<TValue>(Utf8JsonReader, JsonSerializerOptions)

將一個 JSON 值(包括物件或數位)從提供的讀取器讀取到泛型型別參數所指定的型別實例。

Deserialize<TValue>(JsonDocument, JsonTypeInfo<TValue>)

將表示單一 JSON 值的 JsonDocument 轉換成 TValue

Deserialize<TValue>(JsonNode, JsonSerializerOptions)

將表示單一 JSON 值的 JsonNode 轉換成 TValue

Deserialize<TValue>(JsonDocument, JsonSerializerOptions)

將表示單一 JSON 值的 JsonDocument 轉換成 TValue

Deserialize<TValue>(ReadOnlySpan<Char>, JsonTypeInfo<TValue>)

將代表單一 JSON 值的文字剖析為 TValue

Deserialize<TValue>(String, JsonSerializerOptions)

將代表單一 JSON 值的文字剖析為泛型型別參數所指定的型別實例。

Deserialize<TValue>(ReadOnlySpan<Char>, JsonSerializerOptions)

將代表單一 JSON 值的文字剖析為泛型型別參數所指定的型別實例。

Deserialize<TValue>(ReadOnlySpan<Byte>, JsonTypeInfo<TValue>)

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 TValue

Deserialize<TValue>(ReadOnlySpan<Byte>, JsonSerializerOptions)

將代表單一 JSON 值的 UTF-8 編碼文字剖析為泛型型別參數所指定的型別實例。

Deserialize<TValue>(Stream, JsonTypeInfo<TValue>)

將代表單一 JSON 值的 UTF-8 編碼文字讀入 TValue。 Stream 將會讀取為完成。

Deserialize<TValue>(Stream, JsonSerializerOptions)

將代表單一 JSON 值的 UTF-8 編碼文字讀入 TValue。 Stream 將會讀取為完成。

Deserialize<TValue>(String, JsonTypeInfo<TValue>)

將代表單一 JSON 值的文字剖析為 TValue

Deserialize(Stream, JsonTypeInfo)

來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs

將代表單一 JSON 值的 UTF-8 編碼文字讀取至 jsonTypeInfo所指定的實例。 Stream 將會讀取為完成。

public:
 static System::Object ^ Deserialize(System::IO::Stream ^ utf8Json, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : System.IO.Stream * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
Public Function Deserialize (utf8Json As Stream, jsonTypeInfo As JsonTypeInfo) As Object

參數

utf8Json
Stream

要剖析的 JSON 數據。

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

utf8JsonjsonTypeInfonull

JSON 無效,或數據流中有剩餘的數據。

適用於

Deserialize(Utf8JsonReader, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs

從提供的讀取器讀取一個 JSON 值(包括物件或陣列)讀入 returnType

public:
 static System::Object ^ Deserialize(System::Text::Json::Utf8JsonReader % reader, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (ref System.Text.Json.Utf8JsonReader reader, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : Utf8JsonReader * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
Public Function Deserialize (ByRef reader As Utf8JsonReader, returnType As Type, context As JsonSerializerContext) As Object

參數

reader
Utf8JsonReader

要讀取的讀取器。

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnTypecontextnull

JSON 無效,returnType 與 JSON 不相容,或無法從讀取器讀取值。

reader 使用不支持的選項。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 context 上的 GetTypeInfo(Type) 方法未傳回 returnType的相容 JsonTypeInfo

備註

如果 readerTokenType 屬性是 PropertyNameNone,讀取器會由一個呼叫 Read() 來進階,以判斷值的開頭。

完成此方法之後,reader 會位於 JSON 值的最後一個令牌。 如果擲回例外狀況,讀取器會重設為呼叫 方法時的狀態。

這個方法會建立讀取器所處理之數據的複本,因此在此方法傳回之外,不需要呼叫端維護數據完整性。

用來建立 Utf8JsonReader 實例的 JsonReaderOptions 在衝突時優先於 JsonSerializerOptions。 因此,讀取時會使用 AllowTrailingCommasMaxDepthCommentHandling

適用於

Deserialize(JsonNode, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs

將表示單一 JSON 值的 JsonNode 轉換成 returnType

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::Nodes::JsonNode ^ node, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (this System.Text.Json.Nodes.JsonNode? node, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : System.Text.Json.Nodes.JsonNode * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
<Extension()>
Public Function Deserialize (node As JsonNode, returnType As Type, context As JsonSerializerContext) As Object

參數

node
JsonNode

要轉換的 JsonNode

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

-或-

context null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 contextGetTypeInfo(Type) 方法會傳回要轉換之型別的 null

適用於

Deserialize(JsonNode, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs

將表示單一 JSON 值的 JsonNode 轉換成 returnType

public static object? Deserialize (this System.Text.Json.Nodes.JsonNode? node, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.Nodes.JsonNode * Type * System.Text.Json.JsonSerializerOptions -> obj
<Extension()>
Public Function Deserialize (node As JsonNode, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

node
JsonNode

要轉換的 JsonNode

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType 與 JSON 不相容。

returnType 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize(JsonElement, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs

將表示單一 JSON 值的 JsonElement 轉換成 returnType

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::JsonElement element, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (this System.Text.Json.JsonElement element, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : System.Text.Json.JsonElement * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
<Extension()>
Public Function Deserialize (element As JsonElement, returnType As Type, context As JsonSerializerContext) As Object

參數

element
JsonElement

要轉換的 JsonElement

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

-或-

context null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 contextGetTypeInfo(Type) 方法會傳回要轉換之型別的 null

適用於

Deserialize(JsonElement, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs

將表示單一 JSON 值的 JsonElement 轉換成 returnType

public static object? Deserialize (this System.Text.Json.JsonElement element, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.JsonElement * Type * System.Text.Json.JsonSerializerOptions -> obj
<Extension()>
Public Function Deserialize (element As JsonElement, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

element
JsonElement

要轉換的 JsonElement

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

returnType 與 JSON 不相容。

returnType 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize(JsonDocument, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs

將表示單一 JSON 值的 JsonDocument 轉換成 returnType

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::JsonDocument ^ document, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (this System.Text.Json.JsonDocument document, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : System.Text.Json.JsonDocument * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
<Extension()>
Public Function Deserialize (document As JsonDocument, returnType As Type, context As JsonSerializerContext) As Object

參數

document
JsonDocument

要轉換的 JsonDocument

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

document null

-或-

returnType null

-或-

context null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 contextGetTypeInfo(Type) 方法會傳回要轉換之型別的 null

適用於

Deserialize(JsonDocument, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs

將表示單一 JSON 值的 JsonDocument 轉換成 returnType

public static object? Deserialize (this System.Text.Json.JsonDocument document, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.JsonDocument * Type * System.Text.Json.JsonSerializerOptions -> obj
<Extension()>
Public Function Deserialize (document As JsonDocument, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

document
JsonDocument

要轉換的 JsonDocument

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

documentreturnTypenull

returnType 與 JSON 不相容。

returnType 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize(String, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 returnType

public:
 static System::Object ^ Deserialize(System::String ^ json, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (string json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : string * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
Public Function Deserialize (json As String, returnType As Type, context As JsonSerializerContext) As Object

參數

json
String

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

jsonreturnTypenull

-或-

context null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 contextGetTypeInfo(Type) 方法會傳回要轉換之型別的 null

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於

Deserialize(String, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為指定型別的實例。

public static object? Deserialize (string json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
public static object Deserialize (string json, Type returnType, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : string * Type * System.Text.Json.JsonSerializerOptions -> obj
Public Shared Function Deserialize (json As String, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object
Public Function Deserialize (json As String, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

json
String

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

jsonreturnTypenull

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize(ReadOnlySpan<Char>, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 returnType

public:
 static System::Object ^ Deserialize(ReadOnlySpan<char> json, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (ReadOnlySpan<char> json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : ReadOnlySpan<char> * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
Public Function Deserialize (json As ReadOnlySpan(Of Char), returnType As Type, context As JsonSerializerContext) As Object

參數

json
ReadOnlySpan<Char>

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

jsonreturnTypenull

-或-

context null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 contextGetTypeInfo(Type) 方法會傳回要轉換之型別的 null

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於

Deserialize(ReadOnlySpan<Char>, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為指定型別的實例。

public static object? Deserialize (ReadOnlySpan<char> json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : ReadOnlySpan<char> * Type * System.Text.Json.JsonSerializerOptions -> obj
Public Function Deserialize (json As ReadOnlySpan(Of Char), returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

json
ReadOnlySpan<Char>

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

範圍中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

備註

使用UTF-16範圍並不像使用UTF-8方法那麼有效率,因為實作原本就使用UTF-8。

適用於

Deserialize(Utf8JsonReader, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs

從提供的讀取器讀取一個 JSON 值(包括物件或陣列),並將它轉換成指定類型的實例。

public static object? Deserialize (ref System.Text.Json.Utf8JsonReader reader, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
public static object Deserialize (ref System.Text.Json.Utf8JsonReader reader, Type returnType, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : Utf8JsonReader * Type * System.Text.Json.JsonSerializerOptions -> obj
Public Shared Function Deserialize (ByRef reader As Utf8JsonReader, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object
Public Function Deserialize (ByRef reader As Utf8JsonReader, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

reader
Utf8JsonReader

要從中讀取 JSON 的讀取器。

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在讀取期間控制串行化程序行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

無法從讀取器讀取值。

reader 使用不支持的選項。

returnType 或其可串行化成員沒有相容的 JsonConverter

備註

如果 readerTokenType 屬性是 JsonTokenType.PropertyNameJsonTokenType.None,讀取器會由一個呼叫 Utf8JsonReader.Read() 來進階,以判斷值的開頭。

完成此方法之後,reader 會位於 JSON 值的最後一個令牌。 如果擲回例外狀況,讀取器會重設為呼叫 方法時的狀態。

這個方法會建立讀取器所處理之數據的複本,因此在此方法傳回之外,不需要呼叫端維護數據完整性。

用來建立 Utf8JsonReader 實例的 JsonReaderOptions 在衝突時優先於 JsonSerializerOptions。 因此,讀取時會使用 JsonReaderOptions.AllowTrailingCommasJsonReaderOptions.MaxDepthJsonReaderOptions.CommentHandling

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize(ReadOnlySpan<Byte>, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs

將代表單一 JSON 值的 UTF-8 編碼文字剖析成指定類型的實例。

public static object? Deserialize (ReadOnlySpan<byte> utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
public static object Deserialize (ReadOnlySpan<byte> utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : ReadOnlySpan<byte> * Type * System.Text.Json.JsonSerializerOptions -> obj
Public Shared Function Deserialize (utf8Json As ReadOnlySpan(Of Byte), returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object
Public Function Deserialize (utf8Json As ReadOnlySpan(Of Byte), returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

utf8Json
ReadOnlySpan<Byte>

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

JSON 無效。

-或-

returnType 與 JSON 不相容。

-或-

範圍中剩餘的數據超出單一 JSON 值。

returnType 或其可串行化成員沒有相容的 JsonConverter

備註

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize(Stream, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs

將代表單一 JSON 值的 UTF-8 編碼文字讀入 returnType。 Stream 將會讀取為完成。

public:
 static System::Object ^ Deserialize(System::IO::Stream ^ utf8Json, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (System.IO.Stream utf8Json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : System.IO.Stream * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
Public Function Deserialize (utf8Json As Stream, returnType As Type, context As JsonSerializerContext) As Object

參數

utf8Json
Stream

要剖析的 JSON 數據。

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

utf8JsonreturnTypecontextnull

JSON 無效、returnType 與 JSON 不相容,或 Stream 中有剩餘的數據。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 context 上的 GetTypeInfo(Type) 方法未傳回 returnType的相容 JsonTypeInfo

適用於

Deserialize(Stream, Type, JsonSerializerOptions)

來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs

將代表單一 JSON 值的 UTF-8 編碼文字讀入 returnType。 Stream 將會讀取為完成。

public static object? Deserialize (System.IO.Stream utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.IO.Stream * Type * System.Text.Json.JsonSerializerOptions -> obj
Public Function Deserialize (utf8Json As Stream, returnType As Type, Optional options As JsonSerializerOptions = Nothing) As Object

參數

utf8Json
Stream

要剖析的 JSON 數據。

returnType
Type

要轉換成和傳回的物件型別。

options
JsonSerializerOptions

在讀取期間控制行為的選項。

傳回

JSON 值的 returnType 表示法。

例外狀況

utf8JsonreturnTypenull

JSON 無效、returnType 與 JSON 不相容,或 Stream 中有剩餘的數據。

returnType 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize(Utf8JsonReader, JsonTypeInfo)

來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs

將一個 JSON 值(包括物件或數位)從提供的讀取器讀取到 jsonTypeInfo所指定的實例。

public:
 static System::Object ^ Deserialize(System::Text::Json::Utf8JsonReader % reader, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : Utf8JsonReader * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
Public Function Deserialize (ByRef reader As Utf8JsonReader, jsonTypeInfo As JsonTypeInfo) As Object

參數

reader
Utf8JsonReader

要讀取的讀取器。

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

JSON 無效,jsonTypeInfo 與 JSON 不相容,或無法從讀取器讀取值。

reader 使用不支持的選項。

備註

如果 readerTokenType 屬性是 PropertyNameNone,讀取器會由一個呼叫 Read() 來進階,以判斷值的開頭。

完成此方法之後,reader 會位於 JSON 值的最後一個令牌。 如果擲回例外狀況,讀取器會重設為呼叫 方法時的狀態。

這個方法會建立讀取器所處理之數據的複本,因此在此方法傳回之外,不需要呼叫端維護數據完整性。

用來建立 Utf8JsonReader 實例的 JsonReaderOptions 在衝突時優先於 JsonSerializerOptions。 因此,讀取時會使用 AllowTrailingCommasMaxDepthCommentHandling

適用於

Deserialize(JsonNode, JsonTypeInfo)

來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs

將代表單一 JSON 值的 JsonNode 轉換成 jsonTypeInfo所指定的實例。

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::Nodes::JsonNode ^ node, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (this System.Text.Json.Nodes.JsonNode? node, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : System.Text.Json.Nodes.JsonNode * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
<Extension()>
Public Function Deserialize (node As JsonNode, jsonTypeInfo As JsonTypeInfo) As Object

參數

node
JsonNode

要轉換的 JsonNode

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

jsonTypeInfo null

適用於

Deserialize(JsonElement, JsonTypeInfo)

來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs

將代表單一 JSON 值的 JsonElement 轉換成 jsonTypeInfo所指定的實例。

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::JsonElement element, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (this System.Text.Json.JsonElement element, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : System.Text.Json.JsonElement * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
<Extension()>
Public Function Deserialize (element As JsonElement, jsonTypeInfo As JsonTypeInfo) As Object

參數

element
JsonElement

要轉換的 JsonElement

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

jsonTypeInfo null

適用於

Deserialize(JsonDocument, JsonTypeInfo)

來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs

將代表單一 JSON 值的 JsonDocument 轉換成 jsonTypeInfo所指定的實例。

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ Deserialize(System::Text::Json::JsonDocument ^ document, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (this System.Text.Json.JsonDocument document, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : System.Text.Json.JsonDocument * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
<Extension()>
Public Function Deserialize (document As JsonDocument, jsonTypeInfo As JsonTypeInfo) As Object

參數

document
JsonDocument

要轉換的 JsonDocument

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

document null

-或-

jsonTypeInfo null

適用於

Deserialize(String, JsonTypeInfo)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 jsonTypeInfo所指定的實例。

public:
 static System::Object ^ Deserialize(System::String ^ json, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (string json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : string * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
Public Function Deserialize (json As String, jsonTypeInfo As JsonTypeInfo) As Object

參數

json
String

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

json null

-或-

jsonTypeInfo null

JSON 無效。

-或-

字串中剩餘的數據超出單一 JSON 值。

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於

Deserialize(ReadOnlySpan<Char>, JsonTypeInfo)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 jsonTypeInfo所指定的實例。

public:
 static System::Object ^ Deserialize(ReadOnlySpan<char> json, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (ReadOnlySpan<char> json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : ReadOnlySpan<char> * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
Public Function Deserialize (json As ReadOnlySpan(Of Char), jsonTypeInfo As JsonTypeInfo) As Object

參數

json
ReadOnlySpan<Char>

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

jsonTypeInfo null

JSON 無效。

-或-

字串中剩餘的數據超出單一 JSON 值。

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於

Deserialize(ReadOnlySpan<Byte>, Type, JsonSerializerContext)

來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 returnType

public:
 static System::Object ^ Deserialize(ReadOnlySpan<System::Byte> utf8Json, Type ^ returnType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static object? Deserialize (ReadOnlySpan<byte> utf8Json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Deserialize : ReadOnlySpan<byte> * Type * System.Text.Json.Serialization.JsonSerializerContext -> obj
Public Function Deserialize (utf8Json As ReadOnlySpan(Of Byte), returnType As Type, context As JsonSerializerContext) As Object

參數

utf8Json
ReadOnlySpan<Byte>

要剖析的 JSON 文字。

returnType
Type

要轉換成和傳回的物件型別。

context
JsonSerializerContext

可串行化類型的元數據提供者。

傳回

JSON 值的 returnType 表示法。

例外狀況

returnType null

JSON 無效,returnType 與 JSON 不相容,或數據流中有剩餘的數據。

returnType 或其可串行化成員沒有相容的 JsonConverter

所提供 context 上的 GetTypeInfo(Type) 方法未傳回 returnType的相容 JsonTypeInfo

適用於

Deserialize(ReadOnlySpan<Byte>, JsonTypeInfo)

來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 jsonTypeInfo所指定的實例。

public:
 static System::Object ^ Deserialize(ReadOnlySpan<System::Byte> utf8Json, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static object? Deserialize (ReadOnlySpan<byte> utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Deserialize : ReadOnlySpan<byte> * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> obj
Public Function Deserialize (utf8Json As ReadOnlySpan(Of Byte), jsonTypeInfo As JsonTypeInfo) As Object

參數

utf8Json
ReadOnlySpan<Byte>

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo

要轉換之型別的相關元數據。

傳回

JSON 值的 jsonTypeInfo 表示法。

例外狀況

JSON 無效,或緩衝區中有剩餘的數據。

適用於

Deserialize<TValue>(JsonElement, JsonSerializerOptions)

來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs

將表示單一 JSON 值的 JsonElement 轉換成 TValue

public static TValue? Deserialize<TValue> (this System.Text.Json.JsonElement element, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.JsonElement * System.Text.Json.JsonSerializerOptions -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (element As JsonElement, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

element
JsonElement

要轉換的 JsonElement

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(JsonElement, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs
來源:
JsonSerializer.Read.Element.cs

將表示單一 JSON 值的 JsonElement 轉換成 TValue

public:
generic <typename TValue>
[System::Runtime::CompilerServices::Extension]
 static TValue Deserialize(System::Text::Json::JsonElement element, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (this System.Text.Json.JsonElement element, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : System.Text.Json.JsonElement * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (element As JsonElement, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

element
JsonElement

要轉換的 JsonElement

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

jsonTypeInfo null

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(Utf8JsonReader, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs

從提供的讀取器讀取一個 JSON 值(包括物件或陣列)讀入 TValue

public:
generic <typename TValue>
 static TValue Deserialize(System::Text::Json::Utf8JsonReader % reader, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : Utf8JsonReader * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
Public Function Deserialize(Of TValue) (ByRef reader As Utf8JsonReader, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

reader
Utf8JsonReader

要讀取的讀取器。

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

JSON 無效,TValue 與 JSON 不相容,或無法從讀取器讀取值。

reader 使用不支持的選項。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

如果 readerTokenType 屬性是 PropertyNameNone,讀取器會由一個呼叫 Read() 來進階,以判斷值的開頭。

完成此方法之後,reader 會位於 JSON 值的最後一個令牌。 如果擲回例外狀況,讀取器會重設為呼叫 方法時的狀態。

這個方法會建立讀取器所處理之數據的複本,因此在此方法傳回之外,不需要呼叫端維護數據完整性。

用來建立 Utf8JsonReader 實例的 JsonReaderOptions 在衝突時優先於 JsonSerializerOptions。 因此,讀取時會使用 AllowTrailingCommasMaxDepthCommentHandling

適用於

Deserialize<TValue>(JsonNode, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs

將表示單一 JSON 值的 JsonNode 轉換成 TValue

public:
generic <typename TValue>
[System::Runtime::CompilerServices::Extension]
 static TValue Deserialize(System::Text::Json::Nodes::JsonNode ^ node, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (this System.Text.Json.Nodes.JsonNode? node, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : System.Text.Json.Nodes.JsonNode * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (node As JsonNode, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

node
JsonNode

要轉換的 JsonNode

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

jsonTypeInfo null

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(Utf8JsonReader, JsonSerializerOptions)

來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs
來源:
JsonSerializer.Read.Utf8JsonReader.cs

將一個 JSON 值(包括物件或數位)從提供的讀取器讀取到泛型型別參數所指定的型別實例。

public static TValue? Deserialize<TValue> (ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions? options = default);
public static TValue Deserialize<TValue> (ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : Utf8JsonReader * System.Text.Json.JsonSerializerOptions -> 'Value
Public Shared Function Deserialize(Of TValue) (ByRef reader As Utf8JsonReader, Optional options As JsonSerializerOptions = Nothing) As TValue
Public Function Deserialize(Of TValue) (ByRef reader As Utf8JsonReader, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

JSON 值的目標類型。

參數

reader
Utf8JsonReader

要從中讀取 JSON 的讀取器。

options
JsonSerializerOptions

在讀取期間控制串行化程序行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

無法從讀取器讀取值。

reader 使用不支持的選項。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

如果 readerTokenType 屬性是 JsonTokenType.PropertyNameJsonTokenType.None,讀取器會由一個呼叫 Utf8JsonReader.Read() 來進階,以判斷值的開頭。

完成此方法之後,reader 會位於 JSON 值的最後一個令牌。 如果擲回例外狀況,讀取器會重設為呼叫 方法時的狀態。

這個方法會建立讀取器所處理之數據的複本,因此在此方法傳回之外,不需要呼叫端維護數據完整性。

用來建立 Utf8JsonReader 實例的 JsonReaderOptions 在衝突時優先於 JsonSerializerOptions。 因此,讀取時會使用 JsonReaderOptions.AllowTrailingCommasJsonReaderOptions.MaxDepthJsonReaderOptions.CommentHandling

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize<TValue>(JsonDocument, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs

將表示單一 JSON 值的 JsonDocument 轉換成 TValue

public:
generic <typename TValue>
[System::Runtime::CompilerServices::Extension]
 static TValue Deserialize(System::Text::Json::JsonDocument ^ document, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (this System.Text.Json.JsonDocument document, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : System.Text.Json.JsonDocument * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (document As JsonDocument, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

document
JsonDocument

要轉換的 JsonDocument

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

document null

-或-

jsonTypeInfo null

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(JsonNode, JsonSerializerOptions)

來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs
來源:
JsonSerializer.Read.Node.cs

將表示單一 JSON 值的 JsonNode 轉換成 TValue

public static TValue? Deserialize<TValue> (this System.Text.Json.Nodes.JsonNode? node, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.Nodes.JsonNode * System.Text.Json.JsonSerializerOptions -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (node As JsonNode, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

node
JsonNode

要轉換的 JsonNode

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(JsonDocument, JsonSerializerOptions)

來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs
來源:
JsonSerializer.Read.Document.cs

將表示單一 JSON 值的 JsonDocument 轉換成 TValue

public static TValue? Deserialize<TValue> (this System.Text.Json.JsonDocument document, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.Text.Json.JsonDocument * System.Text.Json.JsonSerializerOptions -> 'Value
<Extension()>
Public Function Deserialize(Of TValue) (document As JsonDocument, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

document
JsonDocument

要轉換的 JsonDocument

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

document null

TValue 與 JSON 不相容。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(ReadOnlySpan<Char>, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 TValue

public:
generic <typename TValue>
 static TValue Deserialize(ReadOnlySpan<char> json, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (ReadOnlySpan<char> json, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : ReadOnlySpan<char> * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
Public Function Deserialize(Of TValue) (json As ReadOnlySpan(Of Char), jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

json
ReadOnlySpan<Char>

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

json null

-或-

jsonTypeInfo null

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於

Deserialize<TValue>(String, JsonSerializerOptions)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為泛型型別參數所指定的型別實例。

public static TValue? Deserialize<TValue> (string json, System.Text.Json.JsonSerializerOptions? options = default);
public static TValue Deserialize<TValue> (string json, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : string * System.Text.Json.JsonSerializerOptions -> 'Value
Public Shared Function Deserialize(Of TValue) (json As String, Optional options As JsonSerializerOptions = Nothing) As TValue
Public Function Deserialize(Of TValue) (json As String, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

JSON 值的目標類型。

參數

json
String

要剖析的 JSON 文字。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

json null

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize<TValue>(ReadOnlySpan<Char>, JsonSerializerOptions)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為泛型型別參數所指定的型別實例。

public static TValue? Deserialize<TValue> (ReadOnlySpan<char> json, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : ReadOnlySpan<char> * System.Text.Json.JsonSerializerOptions -> 'Value
Public Function Deserialize(Of TValue) (json As ReadOnlySpan(Of Char), Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

json
ReadOnlySpan<Char>

要剖析的 JSON 文字。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

範圍中剩餘的數據超出單一 JSON 值。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

使用UTF-16範圍並不像使用UTF-8方法那麼有效率,因為實作原本就使用UTF-8。

適用於

Deserialize<TValue>(ReadOnlySpan<Byte>, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs

將代表單一 JSON 值的 UTF-8 編碼文字剖析為 TValue

public:
generic <typename TValue>
 static TValue Deserialize(ReadOnlySpan<System::Byte> utf8Json, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (ReadOnlySpan<byte> utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : ReadOnlySpan<byte> * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
Public Function Deserialize(Of TValue) (utf8Json As ReadOnlySpan(Of Byte), jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

utf8Json
ReadOnlySpan<Byte>

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

JSON 無效,TValue 與 JSON 不相容,或數據流中有剩餘的數據。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(ReadOnlySpan<Byte>, JsonSerializerOptions)

來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs
來源:
JsonSerializer.Read.Span.cs

將代表單一 JSON 值的 UTF-8 編碼文字剖析為泛型型別參數所指定的型別實例。

public static TValue? Deserialize<TValue> (ReadOnlySpan<byte> utf8Json, System.Text.Json.JsonSerializerOptions? options = default);
public static TValue Deserialize<TValue> (ReadOnlySpan<byte> utf8Json, System.Text.Json.JsonSerializerOptions options = default);
static member Deserialize : ReadOnlySpan<byte> * System.Text.Json.JsonSerializerOptions -> 'Value
Public Shared Function Deserialize(Of TValue) (utf8Json As ReadOnlySpan(Of Byte), Optional options As JsonSerializerOptions = Nothing) As TValue
Public Function Deserialize(Of TValue) (utf8Json As ReadOnlySpan(Of Byte), Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

UTF-8 編碼文字的目標類型。

參數

utf8Json
ReadOnlySpan<Byte>

要剖析的 JSON 文字。

options
JsonSerializerOptions

在剖析期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

範圍中剩餘的數據超出單一 JSON 值。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

如需詳細資訊,請參閱 如何串行化和還原串行化 JSON

適用於

Deserialize<TValue>(Stream, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs

將代表單一 JSON 值的 UTF-8 編碼文字讀入 TValue。 Stream 將會讀取為完成。

public:
generic <typename TValue>
 static TValue Deserialize(System::IO::Stream ^ utf8Json, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : System.IO.Stream * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
Public Function Deserialize(Of TValue) (utf8Json As Stream, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

utf8Json
Stream

要剖析的 JSON 數據。

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

utf8JsonjsonTypeInfonull

JSON 無效,TValue 與 JSON 不相容,或數據流中有剩餘的數據。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(Stream, JsonSerializerOptions)

來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs
來源:
JsonSerializer.Read.Stream.cs

將代表單一 JSON 值的 UTF-8 編碼文字讀入 TValue。 Stream 將會讀取為完成。

public static TValue? Deserialize<TValue> (System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions? options = default);
static member Deserialize : System.IO.Stream * System.Text.Json.JsonSerializerOptions -> 'Value
Public Function Deserialize(Of TValue) (utf8Json As Stream, Optional options As JsonSerializerOptions = Nothing) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

utf8Json
Stream

要剖析的 JSON 數據。

options
JsonSerializerOptions

在讀取期間控制行為的選項。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

utf8Json null

JSON 無效,TValue 與 JSON 不相容,或數據流中有剩餘的數據。

TValue 或其可串行化成員沒有相容的 JsonConverter

適用於

Deserialize<TValue>(String, JsonTypeInfo<TValue>)

來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs
來源:
JsonSerializer.Read.String.cs

將代表單一 JSON 值的文字剖析為 TValue

public:
generic <typename TValue>
 static TValue Deserialize(System::String ^ json, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static TValue? Deserialize<TValue> (string json, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Deserialize : string * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> 'Value
Public Function Deserialize(Of TValue) (json As String, jsonTypeInfo As JsonTypeInfo(Of TValue)) As TValue

類型參數

TValue

要還原串行化 JSON 值的型別。

參數

json
String

要剖析的 JSON 文字。

jsonTypeInfo
JsonTypeInfo<TValue>

要轉換之型別的相關元數據。

傳回

TValue

JSON 值的 TValue 表示法。

例外狀況

json null

-或-

jsonTypeInfo null

JSON 無效。

-或-

TValue 與 JSON 不相容。

-或-

字串中剩餘的數據超出單一 JSON 值。

TValue 或其可串行化成員沒有相容的 JsonConverter

備註

使用 String 不像使用UTF-8方法那麼有效率,因為實作原生使用UTF-8。

適用於