有人能告訴我怎麼請我可以創建自定義轉換器如何創建一個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"));
}
}
如果您正在使用網絡API的自定義格式添加到使用配置:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new MyDateTimeConvertor())
非常適合我!確保在全局配置(WebApiConfig)中添加此轉換器,而不是在幫助區域(HelpPageConfig) – 2014-08-12 20:36:38
L.B.的答案給你,你問什麼,但請小心你如何使用它。我們使用ISO日期的原因是因爲它們是明確的和文化不變的。如果您將日期/月/年的值發送出去,比如說「1/4/2013」這樣的值 - 有人不知道您的區域設置可能會將其解釋爲1月4日,而不是您打算的4月1日。 – 2013-04-18 17:12:47
@Matt Johnson,謝謝你的回覆,我完全同意你的100%。這是一箇舊的線程,我現在只使用ISO日期,並在客戶端操作:) – DevMania 2013-04-19 09:38:34