私は次のようなjson構造を持っています:
"list":[
{
"type":"link",
"href":"http://google.com"
},
{
"type":"image",
"src":"http://google.com/logo.png"
},
{
"type":"text",
"text":"some text here"
},
]
これをオブジェクトのリストに逆シリアル化したいのですが、各オブジェクトは基本クラスのサブクラスです。リスト内の各アイテムには異なるプロパティ(href、src、text)があるため、同じクラスを使用してリーチすることはできません。代わりに、一般的なクラスの3つのサブクラスが必要です。JSONリストの各アイテムのtypeプロパティを使用して、使用するサブクラスを決定できます。たとえば、次のクラスを作成できます
public Item{
public string type {get; set;}
}
public LinkItem : Item {
public string href {get; set;}
}
public ImageItem : Item {
public string src {get; set;}
}
public TextItem : Item {
public string text {get; set;}
}
これを行う方法はありますか?または、異種オブジェクトタイプのリストを逆シリアル化するためのより良い方法はありますか?
ちなみにjson.netを使っています