にJSON.NET日を作成するために誰かが私はカスタムコンバータどのように文字列のカスタムコンバータ
を作成する方法を私にしてください教えてもらえ私はJSON.NET ISODateConvertorを使用することができます知っているが、私がしたいことは、特定のある、ちょうど私応答時に "日/月/年"文字列として値を送信したい。
にJSON.NET日を作成するために誰かが私はカスタムコンバータどのように文字列のカスタムコンバータ
を作成する方法を私にしてください教えてもらえ私はJSON.NET ISODateConvertorを使用することができます知っているが、私がしたいことは、特定のある、ちょうど私応答時に "日/月/年"文字列として値を送信したい。
これは何か?
string str = JsonConvert.SerializeObject(new DateTimeClass(), new MyDateTimeConvertor());
public class DateTimeClass
{
public DateTime dt;
public int dummy = 0;
}
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"));
}
}
は、Web APIを使用している場合は使用した構成にカスタムフォーマッタを追加します。
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new MyDateTimeConvertor())
は私にとって素晴らしいことです!このコンバーターをヘルプエリア(HelpPageConfig)ではなくグローバル設定(WebApiConfig)に追加してください。 –
L.B.の答えはあなたが尋ね、あなたに与えていますが、これを使用する方法については非常に注意してください。 ISOの日付を使用するのは、それらが明白で文化的に不変であるためです。あなたの値を日/月/年として送る場合、 '1/4/2013'のような値を言う - あなたのロケールを知らない人は、あなたが意図した4月1日ではなく、1月4日と解釈するかもしれません。 –
@Matt Johnson、返事ありがとう、私はあなたに100%合意しています。これは古いスレッドであり、私はISOの日付を使用してクライアントで操作します:) – DevMania