MVC4アプリケーションをJSON.NETシリアライザを使用するようにグローバルに明示的に設定しました。私は日付をシリアル化するときにISO標準日付または古いMicrosoft日付形式を使用する選択肢があることを知っています。WebApi Json.NETカスタム日付処理
しかし、「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;
と私はimplimentしようとしたカスタムコンバータのようなので、次のとおりです。
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いただければ幸いです:)
私は新しく設定されたJsonserializersettingsを、その親jsonFormatterの代わりにシリアライザの設定に割り当てていましたか?....かなりうまくいっているのは、tbhですが、あなたの助けに感謝しています:) – P0DD3R5