配置ASP.NET Web服务的JSON序列化
问题的原因是在返回的JSON字符串末尾出现了'{"d":null}',并且在ASP.NET Web服务中配置JSON序列化时,无法完全控制输出。
解决方法是使用Json.NET的JsonSerializerSettings来设置日期格式,并将返回类型设置为void。下面是解决方法的代码:
JsonSerializerSettings isoDateFormatSettings = new JsonSerializerSettings(){ DateFormatHandling = DateFormatHandling.IsoDateFormat }; MyCustomClass myObj=MyCustomClass.Load(); string myJson=JsonConvert.SerializeObject(myObj, isoDateFormatSettings); HttpContext.Current.Response.ContentType="application/json"; HttpContext.Current.Response.Write(myJson);
这个解决方法基于Json.NET文档的说明。然而,这个解决方法在某些情况下仍然会在响应的末尾添加'{"d":null}'。有关这个问题的更多信息,请参考此链接:http://stackoverflow.com/questions/9939548。