一部の JSON 文字列を逆シリアル化して .net オブジェクトに戻す際に問題が発生しています。外部からの情報を含むコンテナ クラスがあり、そのClassType
情報のタイプを定義するフィールド呼び出しがあり、実際のコンテンツは別のプロパティにあり、現在は何でもかまいません。そのため、オブジェクト タイプとして定義します。
以下は、問題を理解するのに役立つ .net クラス定義です。
class ClassOne
{
public string Name { get; set; }
public int Age { get; set; }
}
class ClassTwo
{
public string AddressLine { get; set; }
public string AddressLine2 { get; set; }
}
class ClassThree
{
public string Country { get; set; }
public string Passport { get; set; }
}
class ContainerClass
{
public string ClassType { get; set; }
public object ClassContent { get; set; }
}
JSON 形式で外部から情報を取得する場合、次のようになります。
{"ClassType":"Class1","ClassContent":{"Name":"James","Age":2}}
Newtonsoft JSON.net ライブラリを使用して、JSON 文字列を逆シリアル化しています。デフォルトの逆シリアル化関数は、それを単に逆シリアル化してNewtonsoft.Json.Linq.JContainer
. 定義にClassContent
基づいて逆シリアル化する Converter をどのように作成できるか疑問に思っています。ClassType
どのコードサンプルも高く評価されます。