使用配置的序列化程序序列化JSON

时间:2012-11-12 15:29:32

标签: asp.net-mvc asp.net-web-api json.net

我正在使用ASP.Net Web API与JSON.Net进行序列化。我必须配置序列化器来正确处理ISO日期,如下所示:

var iso = new IsoDateTimeConverter {
    DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK"
};

GlobalConfiguration.Configuration.Formatters.JsonFormatter
    .SerializerSettings.Converters.Add(iso);

当我通过WebAPI传递我的对象时,这很好用。然而,我的问题是我还有另一个地方要显式调用序列化:

@Html.Raw(JsonConvert.SerializeObject(Model));

在这种情况下,它不使用我设置的配置。我知道我可以将iso转换器传递给SerializeObject调用,但我更愿意避免这种情况,并且出于显而易见的原因获得配置的序列化器。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果您要自己进行JSON序列化,则必须明确传递所需的设置。没有办法绕过它。如果你想重用相同的序列化设置,我能想到的最好的方法是做这样的事情:

JsonConvert.SerializeObject(Model, GlobalConfiguration.Configuration.Formatters.
    JsonFormatter.SerializerSettings)