13

我已将我的 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"));
        }
    }

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

4

2 回答 2

22

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

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;

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

于 2012-10-12T11:25:20.733 回答
0

谢谢,我快疯了,这对我来说效果很好,将其粘贴到 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,网络服务,自定义日期格式。

于 2013-08-28T21:25:58.473 回答