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

Asp.net mvc 4 WebApi Json.NET自定义日期处理,asp.net-mvc-4,asp.net-web-api,json.net,Asp.net Mvc 4,Asp.net Web Api,Json.net,我已将MVC4应用程序全局显式配置为使用JSON.NET序列化程序。我知道在序列化日期时,我可以选择使用ISO标准日期或旧的Microsoft日期格式 但是如何输出自己的自定义日期时间格式字符串,如:“dd/MM/yyyy hh:MM” 在MVC3中插入Json.NET作为默认序列化程序时,我可以这样做,但在MVC4中似乎做不到 到目前为止,在应用程序_start中,我已经完成了: var settings = GlobalConfiguration.Configuration.Fo

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

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

在MVC3中插入Json.NET作为默认序列化程序时,我可以这样做,但在MVC4中似乎做不到

到目前为止,在应用程序_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;

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

谢谢,我快疯了,这对我来说非常有效,请将其粘贴到Global.asax.cs中

JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
JsonSerializerSettings jSettings =...
创建一个类MyDateTimeConvertor,将其粘贴到类中

public class MyDateTimeConvertor : DateTimeConverterBase
{
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return DateTime...

wep api mvc4、web服务、自定义日期格式。

所以我将新配置的Jsonserializersettings分配给序列化程序设置,而不是其父jsonFormatter???…嗯,很多都是猜测工作,tbh,但感谢您的帮助:)请记住,您的问题的根源在于您没有将jSettings分配给GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings。而是将其指定给“设置”,这是一个局部变量。