我正在尝试将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));
答案 0 :(得分:0)
我认为你设置格式化程序的方式对我来说很好。但是如何确保它在webform返回中使用,它不会自动发生。
[的WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public Something GetSomething() {
}
你怎么试试。