JsonSerializer.Serialize 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Serialize(Stream, Object, Type, JsonSerializerContext)
將所提供的值轉換為UTF-8編碼的JSON文字,並將它寫入 Stream。
public:
static void Serialize(System::IO::Stream ^ utf8Json, System::Object ^ value, Type ^ inputType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static void Serialize (System.IO.Stream utf8Json, object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Serialize : System.IO.Stream * obj * Type * System.Text.Json.Serialization.JsonSerializerContext -> unit
Public Sub Serialize (utf8Json As Stream, value As Object, inputType As Type, context As JsonSerializerContext)
參數
- value
- Object
要轉換的值。
- inputType
- Type
要轉換的 value
型別。
- context
- JsonSerializerContext
可串行化類型的元數據提供者。
例外狀況
inputType
與 value
不相容。
utf8Json
、inputType
或 context
null
。
inputType
或其可串行化成員沒有相容的 JsonConverter。
適用於
Serialize(Utf8JsonWriter, Object, Type, JsonSerializerContext)
將一個 JSON 值(包括物件或數位)寫入提供的寫入器。
public:
static void Serialize(System::Text::Json::Utf8JsonWriter ^ writer, System::Object ^ value, Type ^ inputType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static void Serialize (System.Text.Json.Utf8JsonWriter writer, object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Serialize : System.Text.Json.Utf8JsonWriter * obj * Type * System.Text.Json.Serialization.JsonSerializerContext -> unit
Public Sub Serialize (writer As Utf8JsonWriter, value As Object, inputType As Type, context As JsonSerializerContext)
參數
- writer
- Utf8JsonWriter
要寫入的 JSON 寫入器。
- value
- Object
要轉換和寫入的值。
- inputType
- Type
要轉換的 value
型別。
- context
- JsonSerializerContext
可串行化類型的元數據提供者。
例外狀況
inputType
與 value
不相容。
writer
或 inputType
null
。
inputType
或其可串行化成員沒有相容的 JsonConverter。
所提供 context
GetTypeInfo(Type) 方法會傳回要轉換之型別的 null
。
適用於
Serialize(Utf8JsonWriter, Object, Type, JsonSerializerOptions)
將指定型別的 JSON 表示寫入所提供寫入器。
public static void Serialize (System.Text.Json.Utf8JsonWriter writer, object? value, Type inputType, System.Text.Json.JsonSerializerOptions? options = default);
public static void Serialize (System.Text.Json.Utf8JsonWriter writer, object value, Type inputType, System.Text.Json.JsonSerializerOptions options = default);
static member Serialize : System.Text.Json.Utf8JsonWriter * obj * Type * System.Text.Json.JsonSerializerOptions -> unit
Public Shared Sub Serialize (writer As Utf8JsonWriter, value As Object, inputType As Type, Optional options As JsonSerializerOptions = Nothing)
Public Sub Serialize (writer As Utf8JsonWriter, value As Object, inputType As Type, Optional options As JsonSerializerOptions = Nothing)
參數
- writer
- Utf8JsonWriter
要寫入的 JSON 寫入器。
- value
- Object
要轉換和寫入的值。
- inputType
- Type
要轉換的 value
型別。
- options
- JsonSerializerOptions
控制串行化行為的選項。
例外狀況
inputType
與 value
不相容
writer
或 inputType
null
。
inputType
或其可串行化成員沒有相容的 JsonConverter。
備註
用來建立 Utf8JsonWriter 實例的 JsonWriterOptions 在衝突時優先於 JsonSerializerOptions。 因此,寫入時會使用 JsonWriterOptions.Indented、JsonWriterOptions.SkipValidation和 JsonWriterOptions.Encoder。
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
適用於
Serialize(Utf8JsonWriter, Object, JsonTypeInfo)
將一個 JSON 值(包括物件或數位)寫入提供的寫入器。
public:
static void Serialize(System::Text::Json::Utf8JsonWriter ^ writer, System::Object ^ value, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static void Serialize (System.Text.Json.Utf8JsonWriter writer, object? value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Serialize : System.Text.Json.Utf8JsonWriter * obj * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> unit
Public Sub Serialize (writer As Utf8JsonWriter, value As Object, jsonTypeInfo As JsonTypeInfo)
參數
- writer
- Utf8JsonWriter
要寫入的寫入器。
- value
- Object
要轉換和寫入的值。
- jsonTypeInfo
- JsonTypeInfo
要轉換之型別的相關元數據。
例外狀況
writer
或 jsonTypeInfo
null
。
value
與 jsonTypeInfo
的類型不相符。
適用於
Serialize(Stream, Object, Type, JsonSerializerOptions)
將所提供的值轉換為UTF-8編碼的JSON文字,並將它寫入 Stream。
public static void Serialize (System.IO.Stream utf8Json, object? value, Type inputType, System.Text.Json.JsonSerializerOptions? options = default);
static member Serialize : System.IO.Stream * obj * Type * System.Text.Json.JsonSerializerOptions -> unit
Public Sub Serialize (utf8Json As Stream, value As Object, inputType As Type, Optional options As JsonSerializerOptions = Nothing)
參數
- value
- Object
要轉換的值。
- inputType
- Type
要轉換的 value
型別。
- options
- JsonSerializerOptions
控制轉換行為的選項。
例外狀況
inputType
與 value
不相容。
utf8Json
或 inputType
null
。
inputType
或其可串行化成員沒有相容的 JsonConverter。
適用於
Serialize(Object, Type, JsonSerializerOptions)
將指定型別的值轉換成 JSON 字串。
public static string Serialize (object? value, Type inputType, System.Text.Json.JsonSerializerOptions? options = default);
public static string Serialize (object value, Type inputType, System.Text.Json.JsonSerializerOptions options = default);
static member Serialize : obj * Type * System.Text.Json.JsonSerializerOptions -> string
Public Shared Function Serialize (value As Object, inputType As Type, Optional options As JsonSerializerOptions = Nothing) As String
Public Function Serialize (value As Object, inputType As Type, Optional options As JsonSerializerOptions = Nothing) As String
參數
- value
- Object
要轉換的值。
- inputType
- Type
要轉換的 value
型別。
- options
- JsonSerializerOptions
控制轉換行為的選項。
傳回
值的 JSON 字串表示。
例外狀況
inputType
與 value
不相容。
inputType
null
。
inputType
或其可串行化成員沒有相容的 JsonConverter。
備註
使用 String 不像使用UTF-8編碼那麼有效率,因為實作在內部使用UTF-8。 請參閱 SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) 與 SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)。
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
適用於
Serialize(Stream, Object, JsonTypeInfo)
將所提供的值轉換為UTF-8編碼的JSON文字,並將它寫入 Stream。
public:
static void Serialize(System::IO::Stream ^ utf8Json, System::Object ^ value, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static void Serialize (System.IO.Stream utf8Json, object? value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Serialize : System.IO.Stream * obj * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> unit
Public Sub Serialize (utf8Json As Stream, value As Object, jsonTypeInfo As JsonTypeInfo)
參數
- value
- Object
要轉換的值。
- jsonTypeInfo
- JsonTypeInfo
要轉換之型別的相關元數據。
例外狀況
utf8Json
null
。
value
與 jsonTypeInfo
的類型不相符。
適用於
Serialize(Object, JsonTypeInfo)
將提供的值轉換成 String。
public:
static System::String ^ Serialize(System::Object ^ value, System::Text::Json::Serialization::Metadata::JsonTypeInfo ^ jsonTypeInfo);
public static string Serialize (object? value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo);
static member Serialize : obj * System.Text.Json.Serialization.Metadata.JsonTypeInfo -> string
Public Function Serialize (value As Object, jsonTypeInfo As JsonTypeInfo) As String
參數
- value
- Object
要轉換的值。
- jsonTypeInfo
- JsonTypeInfo
要轉換之型別的相關元數據。
傳回
值的 String 表示法。
例外狀況
jsonTypeInfo
null
。
value
與 jsonTypeInfo
的類型不相符。
備註
使用 String 不像使用UTF-8編碼那麼有效率,因為實作在內部使用UTF-8。 請參閱 SerializeToUtf8Bytes(Object, JsonTypeInfo) 與 SerializeAsync(Stream, Object, JsonTypeInfo, CancellationToken)。
適用於
Serialize(Object, Type, JsonSerializerContext)
將提供的值轉換成 String。
public:
static System::String ^ Serialize(System::Object ^ value, Type ^ inputType, System::Text::Json::Serialization::JsonSerializerContext ^ context);
public static string Serialize (object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
static member Serialize : obj * Type * System.Text.Json.Serialization.JsonSerializerContext -> string
Public Function Serialize (value As Object, inputType As Type, context As JsonSerializerContext) As String
參數
- value
- Object
要轉換的值。
- inputType
- Type
要轉換的 value
型別。
- context
- JsonSerializerContext
可串行化類型的元數據提供者。
傳回
值的 String 表示法。
例外狀況
inputType
或其可串行化成員沒有相容的 JsonConverter。
所提供 context
GetTypeInfo(Type) 方法會傳回要轉換之型別的 null
。
inputType
或 context
null
。
備註
使用 String 不像使用UTF-8編碼那麼有效率,因為實作在內部使用UTF-8。 請參閱 SerializeToUtf8Bytes(Object, Type, JsonSerializerContext) 與 SerializeAsync(Stream, Object, Type, JsonSerializerContext, CancellationToken)。
適用於
Serialize<TValue>(Utf8JsonWriter, TValue, JsonSerializerOptions)
將泛型型別參數所指定的型別 JSON 表示寫入所提供寫入器。
public static void Serialize<TValue> (System.Text.Json.Utf8JsonWriter writer, TValue value, System.Text.Json.JsonSerializerOptions? options = default);
public static void Serialize<TValue> (System.Text.Json.Utf8JsonWriter writer, TValue value, System.Text.Json.JsonSerializerOptions options = default);
static member Serialize : System.Text.Json.Utf8JsonWriter * 'Value * System.Text.Json.JsonSerializerOptions -> unit
Public Shared Sub Serialize(Of TValue) (writer As Utf8JsonWriter, value As TValue, Optional options As JsonSerializerOptions = Nothing)
Public Sub Serialize(Of TValue) (writer As Utf8JsonWriter, value As TValue, Optional options As JsonSerializerOptions = Nothing)
類型參數
- TValue
要串行化之值的型別。
參數
- writer
- Utf8JsonWriter
要寫入的 JSON 寫入器。
- value
- TValue
要轉換和寫入的值。
- options
- JsonSerializerOptions
控制串行化行為的選項。
例外狀況
writer
null
。
TValue
或其可串行化成員沒有相容的 JsonConverter。
備註
用來建立 Utf8JsonWriter 實例的 JsonWriterOptions 在衝突時優先於 JsonSerializerOptions。 因此,寫入時會使用 JsonWriterOptions.Indented、JsonWriterOptions.SkipValidation和 JsonWriterOptions.Encoder。
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
適用於
Serialize<TValue>(TValue, JsonSerializerOptions)
將泛型型別參數所指定的型別值轉換成 JSON 字串。
public static string Serialize<TValue> (TValue value, System.Text.Json.JsonSerializerOptions? options = default);
public static string Serialize<TValue> (TValue value, System.Text.Json.JsonSerializerOptions options = default);
static member Serialize : 'Value * System.Text.Json.JsonSerializerOptions -> string
Public Shared Function Serialize(Of TValue) (value As TValue, Optional options As JsonSerializerOptions = Nothing) As String
Public Function Serialize(Of TValue) (value As TValue, Optional options As JsonSerializerOptions = Nothing) As String
類型參數
- TValue
要串行化之值的型別。
參數
- value
- TValue
要轉換的值。
- options
- JsonSerializerOptions
控制串行化行為的選項。
傳回
值的 JSON 字串表示。
例外狀況
TValue
或其可串行化成員沒有相容的 JsonConverter。
備註
使用 String 不像使用UTF-8編碼那麼有效率,因為實作在內部使用UTF-8。 請參閱 SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) 與 SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)。
如需詳細資訊,請參閱 如何串行化和還原串行化 JSON。
適用於
Serialize<TValue>(TValue, JsonTypeInfo<TValue>)
將提供的值轉換成 String。
public:
generic <typename TValue>
static System::String ^ Serialize(TValue value, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static string Serialize<TValue> (TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Serialize : 'Value * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> string
Public Function Serialize(Of TValue) (value As TValue, jsonTypeInfo As JsonTypeInfo(Of TValue)) As String
類型參數
- TValue
要串行化之值的型別。
參數
- value
- TValue
要轉換的值。
- jsonTypeInfo
- JsonTypeInfo<TValue>
要轉換之型別的相關元數據。
傳回
值的 String 表示法。
例外狀況
TValue
或其可串行化成員沒有相容的 JsonConverter。
jsonTypeInfo
null
。
備註
使用 String 不像使用UTF-8編碼那麼有效率,因為實作在內部使用UTF-8。 請參閱 SerializeToUtf8Bytes<TValue>(TValue, JsonTypeInfo<TValue>) 與 SerializeAsync<TValue>(Stream, TValue, JsonTypeInfo<TValue>, CancellationToken)。
適用於
Serialize<TValue>(Stream, TValue, JsonSerializerOptions)
將所提供的值轉換為UTF-8編碼的JSON文字,並將它寫入 Stream。
public static void Serialize<TValue> (System.IO.Stream utf8Json, TValue value, System.Text.Json.JsonSerializerOptions? options = default);
static member Serialize : System.IO.Stream * 'Value * System.Text.Json.JsonSerializerOptions -> unit
Public Sub Serialize(Of TValue) (utf8Json As Stream, value As TValue, Optional options As JsonSerializerOptions = Nothing)
類型參數
- TValue
要串行化之值的型別。
參數
- value
- TValue
要轉換的值。
- options
- JsonSerializerOptions
控制轉換行為的選項。
例外狀況
utf8Json
null
。
TValue
或其可串行化成員沒有相容的 JsonConverter。
適用於
Serialize<TValue>(Stream, TValue, JsonTypeInfo<TValue>)
將所提供的值轉換為UTF-8編碼的JSON文字,並將它寫入 Stream。
public:
generic <typename TValue>
static void Serialize(System::IO::Stream ^ utf8Json, TValue value, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static void Serialize<TValue> (System.IO.Stream utf8Json, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Serialize : System.IO.Stream * 'Value * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> unit
Public Sub Serialize(Of TValue) (utf8Json As Stream, value As TValue, jsonTypeInfo As JsonTypeInfo(Of TValue))
類型參數
- TValue
要串行化之值的型別。
參數
- value
- TValue
要轉換的值。
- jsonTypeInfo
- JsonTypeInfo<TValue>
要轉換之型別的相關元數據。
例外狀況
utf8Json
null
。
TValue
或其可串行化成員沒有相容的 JsonConverter。
適用於
Serialize<TValue>(Utf8JsonWriter, TValue, JsonTypeInfo<TValue>)
將一個 JSON 值(包括物件或數位)寫入提供的寫入器。
public:
generic <typename TValue>
static void Serialize(System::Text::Json::Utf8JsonWriter ^ writer, TValue value, System::Text::Json::Serialization::Metadata::JsonTypeInfo<TValue> ^ jsonTypeInfo);
public static void Serialize<TValue> (System.Text.Json.Utf8JsonWriter writer, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo<TValue> jsonTypeInfo);
static member Serialize : System.Text.Json.Utf8JsonWriter * 'Value * System.Text.Json.Serialization.Metadata.JsonTypeInfo<'Value> -> unit
Public Sub Serialize(Of TValue) (writer As Utf8JsonWriter, value As TValue, jsonTypeInfo As JsonTypeInfo(Of TValue))
類型參數
- TValue
要串行化之值的型別。
參數
- writer
- Utf8JsonWriter
要寫入的寫入器。
- value
- TValue
要轉換和寫入的值。
- jsonTypeInfo
- JsonTypeInfo<TValue>
要轉換之型別的相關元數據。
例外狀況
writer
或 jsonTypeInfo
null
。
TValue
或其可串行化成員沒有相容的 JsonConverter。