JSON.NETシリアライザーを使用するようにMVC4アプリをグローバルに明示的に構成しました。日付をシリアル化するときに、ISO標準の日付または古いMicrosoftの日付形式を使用するかどうかを選択できることはわかっています。
しかし、どうすれば: "dd / MM / yyyy hh:mm"のような独自のカスタムdateTimeフォーマット文字列を出力できますか。
デフォルトのシリアライザーとしてJson.NETを接続すると、MVC3でこれを実行できますが、MVC4では実行できないようです。
これまでのところ、application_startで私が行ったことは:
var settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()
{
Formatting = Formatting.Indented,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
};
jSettings.Converters.Add(new MyDateTimeConvertor() );
settings = jSettings;
そして、私が暗示しようとしたカスタムコンバーターは次のようなものです:
public class MyDateTimeConvertor : DateTimeConverterBase
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return DateTime.Parse(reader.Value.ToString());
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString("dd/MM/yyyy hh:mm"));
}
}
Anyhelpをいただければ幸いです:)