我正在尝试将 Json 格式化程序换成 Json.Net,所以我可以获得 ISO 日期而不是“/Date(1379112467317)/”
我还让 .Net (WebForms) 通过 [WebMethod] 自动神奇地处理 Json 序列化/反序列化。似乎没有使用 Json.Net 格式化程序。
在我的 global.asax 中,我可以看到旧的 MS Json 格式化程序被删除,新的 Json.net 格式化程序与 IsoDateTimeConverter 一起添加。
但是,我的 [Webmethod] 仍然返回旧的 /Date()/ json 字符串,而不是 Iso 日期。我是否必须在我的 global.asax 中为 [Webmethod] 的自动魔术做任何特别的事情才能使用新的格式化程序?
这是全局代码:
见:http ://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
var formatter = config.Formatters.Where(f => { return f.SupportedMediaTypes.Any(v => v.MediaType.Equals("application/json", StringComparison.CurrentCultureIgnoreCase)); }).FirstOrDefault();
if (formatter != null)
{
config.Formatters.Remove(formatter);
}
JsonSerializerSettings serializerSettings = new JsonSerializerSettings();
serializerSettings.Converters.Add(new IsoDateTimeConverter());
config.Formatters.Add(new JsonNetFormatter(serializerSettings));