JavaScriptSerializer.ConvertToType メソッド

定義

オーバーロード

名前 説明
ConvertToType(Object, Type)

指定したオブジェクトを指定した型に変換します。

ConvertToType<T>(Object)

指定したオブジェクトを指定した型に変換します。

ConvertToType(Object, Type)

指定したオブジェクトを指定した型に変換します。

public:
 System::Object ^ ConvertToType(System::Object ^ obj, Type ^ targetType);
public object ConvertToType(object obj, Type targetType);
member this.ConvertToType : obj * Type -> obj
Public Function ConvertToType (obj As Object, targetType As Type) As Object

パラメーター

obj
Object

変換するオブジェクト。

targetType
Type

オブジェクトの変換元の型。

返品

シリアル化された JSON 文字列。

例外

結果として得られる JSON 形式の文字列が、 MaxJsonLengthの値を超えています。

-又は-

obj には循環参照が含まれています。 循環参照は、子オブジェクトが親オブジェクトへの参照を持ち、親オブジェクトが子オブジェクトへの参照を持っている場合に発生します。

RecursionLimitによって定義された再帰の制限を超えました。

注釈

JavaScriptSerializer インスタンスがカスタム コンバーターが登録されている型をシリアル化する場合、シリアライザーは Serialize メソッドを呼び出して、JSON 形式の文字列に変換される名前と値のペアのディクショナリを取得します。

Serialize メソッドは、オブジェクト グラフが複雑すぎる場合や、JavaScriptConverterの登録済みインスタンスによってコンバーター再帰が発生した場合にも例外をスローできます。

適用対象

ConvertToType<T>(Object)

指定したオブジェクトを指定した型に変換します。

public:
generic <typename T>
 T ConvertToType(System::Object ^ obj);
public T ConvertToType<T>(object obj);
member this.ConvertToType : obj -> 'T
Public Function ConvertToType(Of T) (obj As Object) As T

型パラメーター

T

objの変換先となる型。

パラメーター

obj
Object

変換するオブジェクト。

返品

T

ターゲット型に変換されたオブジェクト。

例外

obj (または、 objの入れ子になったメンバー)には、カスタム型を示す "__type" プロパティが含まれていますが、シリアライザーに関連付けられている型リゾルバーは、対応するマネージド型を見つけることができません。

-又は-

obj (または、 objの入れ子になったメンバー)には、カスタム型を示す "__type" プロパティが含まれていますが、対応する JSON 文字列を逆シリアル化した結果を、想定されるターゲット型に割り当てることはできません。

-又は-

obj (または、 objの入れ子になったメンバー)には、 Object またはインスタント不可能な型 (抽象型やインターフェイスなど) を示す "__type" プロパティが含まれています。

-又は-

objを配列に似たマネージド型に変換しようとしましたが、逆シリアル化ターゲットとして使用することはできません。

-又は-

objTに変換することはできません。

obj はディクショナリ型で、文字列以外のキー値が見つかりました。

-又は-

obj には、型 Tで使用できないメンバー定義が含まれています。

次の例は、 ConvertToType メソッドを使用して、コンバーターに渡されるディクショナリ内の値から ListItem オブジェクトを取得する方法を示しています。 このコード例は、 JavaScriptSerializer クラスに提供されるより大きな例の一部です。

ArrayList itemsList = (ArrayList)dictionary["List"];
for (int i=0; i<itemsList.Count; i++)
    list.Add(serializer.ConvertToType<ListItem>(itemsList[i]));
Dim itemsList As ArrayList = CType(dictionary("List"), ArrayList)
Dim i As Integer
For i = 0 To itemsList.Count - 1
    list.Add(serializer.ConvertToType(Of ListItem)(itemsList(i)))
Next i

注釈

ConvertToType メソッドは、objによって表されるオブジェクト インスタンスをT型のインスタンスに変換しようとします。 この変換中に、オブジェクト参照の等価性が維持される保証はありません。 したがって、 objT が同じオブジェクトを参照しているとは想定できません。

ConvertToType は、 JavaScriptConverterから派生するクラスを実装する場合に使用することを目的としています。 コンバーター コードは、シリアライザーが渡すディクショナリ内の値を受け取り、その値を T型のインスタンスに変換できる必要があります。 カスタム変換コードを再実装してこのタスクを実行する代わりに、コンバーター コードから ConvertToType メソッドを呼び出すことができます。

適用対象