Как создать пользовательский конвертер даты в строку JSON.NET
Может кто-нибудь сказать мне, пожалуйста, как я могу создать собственный конвертер
Я знаю, что могу использовать JSON.NET ISODateConvertor, но то, что я хочу, является конкретным, я просто хочу отправить значение в виде строки "день / месяц / год" в ответе.
2 ответа
Решение
Что-то вроде этого?
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())