私は受け取るJSONデータを格納するオブジェクトを作成していますが、オブジェクトを構造化する正しい方法を理解できません。基本的には、私は体の違いだけを持つ2つの異なるオブジェクトを受け取ることができるので、私は基本クラスを作りたいと思っています。JSONデータの基本クラス
public class SampleBase
{
public string url { get; set; }
public string resource { get; set; }
public string Body body { get; set; }
}
これは
public abstract class Body{ }
の下に宣言したボディオブジェクトと私はその後、以下の例で私が受け取ることができ、ベースオブジェクトのバージョンのための2つの別々のファイルを、持っている、ベースの例です。
public class SampleObject : SampleBase
{
public class Body
{
public string bodyproperty { get; set; }
}
}
いくつかのプロパティを共有しているので、クラスを効率的にするためにこれをやっています。 SampleBaseクラスは決して呼び出されません。代わりに、着信jsonはSampleObjectに逆シリアル化されます。これはベストプラクティスですか?
編集:シリアライザのあなたの選択に依存して大きくすることができます。この例で行く、JSONは
{
"url": "xxxxxxxxxx",
"resource": "xxxxxxx",
"body": {
"bodyproperty": "xxxx",
}
}
これは、JSONの例を参照するのに役立つだろう、プラスなぜBodyプロパティは一例にしていないサンプルJSONと 'SampleClass' – maccettura
@maccettura更新ポストでabstract''マークされています。 2つの異なる派生オブジェクトはボディに異なるプロパティを持つため、ボディオブジェクトのプロパティは抽象クラスとして宣言され、その代わりに派生オブジェクトに応じて設定されるため、基底オブジェクトには抽象クラスとしてマークされています –