次のように表された日付でJSONデータをサーバーに受信しています:
{
"startDate": {
"d": "/Date(1346454000000)/"
},
"slots": [
{
"d": "/Date(1347058800000)/"
},
{
"d": "/Date(1347145200000)/"
}
]
}
単純なオブジェクトにシリアル化されます。
public class SlotsVm
{
public DateTime StartDate { get; set; }
public DateTime[] Slots { get; set; }
}
日付形式が変なので、それを処理するカスタム JsonConverter を作成する必要がありました。逆シリアル化するには、次のようなコードを使用します。
var slotsVm = JsonConvert.DeserializeObject<SlotsVm>(body,
new CustomDateTimeConverter());
可能であれば、SlotsVm
実際に変換を行うコードではなく、クラスでコンバーターを定義する必要があることを望みます。これは、startDate
属性を使用するプロパティで可能です。
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime StartDate { get; set; }
ただしSlots
、単純な ではなく配列である は使用できませんDateTime
。
クラス自体でクラスが必要とするコンバーターを定義できることが私にとって最善です。
[JsonConverters(typeof(CustomDateTimeConverter), ...]
public class PutDealVm
{
}
しかし、これを行う方法はないようです。
解決策を考えられますか?見逃したクラスのコンバーターを定義する方法はありますか? または、配列がその要素ごとに使用する必要があるコンバーターを定義することは可能ですか?