に次の設定の Web API プロジェクトがありますGlobal.asax.cs
。
var serializerSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
serializerSettings.Converters.Add(new IsoDateTimeConverter());
var jsonFormatter = new JsonMediaTypeFormatter { SerializerSettings = serializerSettings };
jsonFormatter.MediaTypeMappings.Add(GlobalConfiguration.Configuration.Formatters[0].MediaTypeMappings[0]);
GlobalConfiguration.Configuration.Formatters[0] = jsonFormatter;
WebApiConfig.Register(GlobalConfiguration.Configuration);
これにもかかわらず、Json.Net はISO 期間を解析できません。
次のエラーがスローされます。
値「2007-03-01T13:00:00Z/2008-05-11T15:30:00Z」を「System.TimeSpan」型に変換中にエラーが発生しました。
Json.Net v4.5 を使用しています。
「P1M」やウィキページにリストされている他の値など、さまざまな値を試しましたが、うまくいきませんでした。
質問は次のとおりです。
- 何か不足していますか?
- または、カスタム フォーマッタを作成する必要がありますか?