WebApi自帶json序列化對遇到時間日期字段的時候,到前端獲取的格式老是爲「 2016-07-14T15:32:44」,中間老是會帶一個T,顯然不是很友好。先是偷懶在園子裏邊去找一些解決方案,嘗試了一下,然並卵。因而,本身想辦法。html
1.先是查看ApiController.JsonResults<T>的源碼前端
其實Json<T>方法是有三個重載方法的,咱們只須要在返回對象的時候調用重載方法,加上序列化對象serializerSettings參數便可,該對象的獲取能夠經過程序員
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings 來進行獲取,咱們默認看到的該參數就是"yyyy'-'MM'-'dd'T'HH':'mm':'ss",那麼顯而易見,最後的格式帶T就事這個參數的問題。咱們只須要對這個參數從新賦值爲"yyyy'-'MM'-'dd' 'HH':'mm':'ss"便可。因爲這個參數是一個全局參數,咱們能夠在WebAPi的Register中定義而且賦值,這樣就不用在每一個方法裏邊都從新賦值了。web
到此處,該問題算是完美解決了,可是有沒有辦法不要每一個方法都加序列化的參數,程序員都是愛偷懶的。可是確定有的。其實很簡單,分析JsonResult<T>的源碼便可發現該方法是能夠被重寫的。只須要在基類方法中重寫便可。基類重寫以下:json
重寫基類方法後須要注意的是,該方法因爲返回值是JsonResult,也會被當作API方法,默認都是POST方法,會替換掉沒有Route特性的方法,因此臨時加了個HttpGet特性。此處還有待完善。項目中碰到的問題,記錄一下,歡迎你們拍磚!api
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------spa
園子裏邊的解決方案: code
引用自:http://www.cnblogs.com/wuball/p/4231343.htmlorm
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- htm
MVC web api 返回JSON的幾種方式
一、在WebApiConfig的Register中加入如下代碼
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
二、在WebApiConfig的Register中加入如下代碼
config.Formatters.Remove(config.Formatters.XmlFormatter);
三、在WebApiApplication的Application_Start中加入如下代碼
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
一、在MVC中全局去除時間格式中帶T的問題。
MVC中默認使用Newtonsoft.Json序列化的,因此在WebApiConfig的Register中加入如下代碼便可
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" });
二、在webservice中去除時間帶T的問題。
IsoDateTimeConverter timejson = new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" }; //在序列化的時候傳入timejson對象 //如: return JsonConvert.SerializeObject(object, timejson);//object是須要序列化的對象