如何创建一个JSON.NET Date to String自定义Converter

Dev*_*nia 22 c# json.net

有人能告诉我如何创建自定义转换器

我知道我可以使用JSON.NET ISODateConvertor,但我想要的是具体的,我只想在响应时将值作为"日/月/年"字符串发送.

L.B*_*L.B 41

像这样的东西?

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") );
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

如果您使用Web Api,请使用以下命令将自定义格式化程序添加到配置中:

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new MyDateTimeConvertor())
Run Code Online (Sandbox Code Playgroud)