gpt4 book ai didi

asp.net-mvc-4 - WebApi Json.NET 自定义日期处理

转载 作者:行者123 更新时间:2023-12-04 00:39:15 26 4
gpt4 key购买 nike

我已全局显式配置我的 MVC4 应用程序以使用 JSON.NET 序列化程序。我知道在序列化日期时我可以选择使用 ISO 标准日期或旧的 Microsoft 日期格式。

但是如何输出我自己的自定义日期时间格式字符串,例如:“dd/MM/yyyy hh:mm”。

当插入 Json.NET 作为默认序列化程序时,我可以在 MVC3 中执行此操作,但似乎无法在 MVC4 中执行此操作。

到目前为止,在 application_start 中我已经完成了:

  var settings =     GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;            
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()
{
Formatting = Formatting.Indented,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,


};
jSettings.Converters.Add(new MyDateTimeConvertor() );
settings = jSettings;

我试图实现的自定义转换器是这样的:
 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 hh:mm"));
}
}

任何帮助,将不胜感激 :)

最佳答案

像这样更改设置设置代码:

JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()
{
Formatting = Formatting.Indented,
DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
jSettings.Converters.Add(new MyDateTimeConvertor());
jsonFormatter.SerializerSettings = jSettings;

在您的代码中,您只是在更改局部变量值。

关于asp.net-mvc-4 - WebApi Json.NET 自定义日期处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12856853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com