有人可以告诉我如何创建自定义转换器
我知道我可以使用JSON.NET ISODateConvertor,但我想要的是具体的,我只想在响应时将值作为“日/月/年”字符串发送。
答案 0 :(得分: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") );
}
}
答案 1 :(得分:8)
如果您使用的是Web Api,请使用以下命令将自定义格式化程序添加到配置中:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new MyDateTimeConvertor())