WebApi 自帶Json返回日期帶T無法格式化的問題
WebApi自帶json序列化對遇到時間日期欄位的時候,到前端獲取的格式總是為“ 2016-07-14T15:32:44”,中間總是會帶一個T,顯然不是很友好。先是偷懶在園子裡邊去找一些解決方案,嘗試了一下,然並卵。於是,自己想辦法。
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中定義並且賦值,這樣就不用在每個方法裡邊都重新賦值了。
到此處,該問題算是完美解決了,但是有沒有辦法不要每個方法都加序列化的引數,程式設計師都是愛偷懶的。但是肯定有的。其實很簡單,分析JsonResult<T>的原始碼即可發現該方法是可以被重寫的。只需要在基類方法中重寫即可。基類重寫如下:
重寫基類方法後需要注意的是,該方法由於返回值是JsonResult,也會被當做API方法,預設都是POST方法,會替換掉沒有Route特性的方法,所以臨時加了個HttpGet特性。此處還有待完善。專案中碰到的問題,記錄一下,歡迎大家拍磚!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
園子裡邊的解決方案:
引用自:http://www.cnblogs.com/wuball/p/4231343.html
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MVC web api 返回JSON的幾種方式
1、在WebApiConfig的Register中加入以下程式碼
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
2、在WebApiConfig的Register中加入以下程式碼
config.Formatters.Remove(config.Formatters.XmlFormatter);
3、在WebApiApplication的Application_Start中加入以下程式碼
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
1、在MVC中全域性去除時間格式中帶T的問題。
MVC中預設使用Newtonsoft.Json序列化的,所以在WebApiConfig的Register中加入以下程式碼即可
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" });
2、在webservice中去除時間帶T的問題。
IsoDateTimeConverter timejson = new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" }; //在序列化的時候傳入timejson物件 //如: return JsonConvert.SerializeObject(object, timejson);//object是需要序列化的物件
相關推薦
WebApi 自帶Json返回日期帶T無法格式化的問題
WebApi自帶json序列化對遇到時間日期欄位的時候,到前端獲取的格式總是為“ 2016-07-14T15:32:44”,中間總是會帶一個T,顯然不是很友好。先是偷懶在園子裡邊去找一些解決方案,嘗試了一下,然並卵。於是,自己想辦法。 1.先是
ASP.NET WebApi 自帶Json返回日期帶T無法格式化的問題
WebApi自帶json序列化對遇到時間日期欄位的時候,到前端獲取的格式總是為“ 2016-07-14T15:32:44”,中間總是會帶一個T,顯然不是很友好。先是偷懶在園子裡邊去找一些解決方案,嘗試了一下,然並卵。於是,自己想辦法。 1.先是檢視ApiContro
解決json顯示日期帶T的問題
-m format) object indent isod 顯示 etime time 解決 參照網友的解決方案 IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFo
AngularJS處理ASP.Net MVC Json返回日期
ASP.NET MVC 在返回 JSON 型別時,,時間的格式會是 "/Date(1306418993027)/" public ActionResult Test(){ List<Person> persons = new List<Person
json返回日期格式化的解決
function jsonDateFormat(jsonDate) {//json日期格式轉換為正常格式 try { var date = new Date(parseInt(jsonDate.replace("/Date(", "").replac
解決WebApi,Mvc返回json資料遇見日期帶T
我們用webapi自帶的json序列化時,遇見資料庫datetime型別的日期中間會多加一個T,就像2017-09-09 22:11:26.267,而經過自帶的json處理後會變成2017-09-09T22:11:26.267。 解決辦法: 我們可以看到自帶的json有三
解決JSON返回的時間帶字元T的問題(前端解決辦法)
function showArticleList(id){ var myUrl = "../api/Articles"; $.ajax({ type: 'GET', url: myUrl, data: { page: iIndex,
vue 專案中 如何動態監聽瀏覽器以及iOS手機微信自帶的返回按鈕的事件
vue搭建的頁面中,左上角的返回按鈕,我自己定義了返回的了路徑,可是當執行時,就會發現,蘋果手機的下方會有自帶的返回按鈕(安卓手機沒有),那麼這個按鈕的返回事件該如何設定呢? 一般情況下,微信自帶的返回按鈕都是返回上一個路徑,可是當我的頁面時使用者掃碼進入的,沒有上一條路徑
Andriod系統如何阻止手機自帶的返回按鈕的原路返回
最近在用mui混合開發Andriod APP時,碰到一個問題:手機自帶的返回按鈕,會一直原路返回前面開啟過的頁面。比如註冊-登入-填寫資料-個人中心,在個人中心點選自帶按鈕時,會一直返回到註冊頁面。按照正常的業務邏輯,進入個人中心頁面後,不能讓使用者再返回註冊頁面的。解決方法
Gson庫和Android自帶JSON解析對轉義字元的處理存在不同
遇到一坑,以前用的是Gson庫,現在改為Android自帶的JSON解析,後端收到資料有時會解析失敗,查詢原因,發現Gson庫和Android自帶JSON解析對轉義字元的處理存在稍許的不同。 舉例如下: String s1 = "https://blog
自定義webView,實現帶title和返回的webView,監聽webView的滑動事件
安卓webView介紹 WebView是基於webkit引擎展現web頁面的控制元件,它功能強大,除了具有一般View的屬性和設定外,還可以對url請求、頁面載入、渲染、頁面互動進行強大的處理。 We
h5監聽任何 App 自帶的返回鍵,以及安卓機裡的物理返回鍵
var hiddenProperty = 'hidden' in document ? 'hidden' : 'webkitHidden' in document ? 'webkitHidden' : 'mozHidden' in document ?
json時間字串帶T
在處理時間格式時,特別是通過json序列化datetime型別,返回給前端進行展示,你會發現的字串帶T。 例如:2017-09-05T13:08:56.080 在時間和日期之間會幫我們加個字母大些T,那如何解決呢? 一、提前在後端處理時間格式 將datetime型別轉換成
JS處理後臺傳回json格式的帶T時間資料
最近做的專案,返回的時間資料有的帶T的,最初以為可能所有的都是這樣的,所以簡單寫了一個處理時間格式的方法function FormatTime(dataTime) { var time = dataTime.split(/[T+]/);
IOS開發學習27 ObjectC 自帶json解析方法的使用
1.生成json字串 NSMutableDictionary * header=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"201
MongoDB 自帶JSON類 序列化自定義物件為Json字串解決方案
今天在使用MongoDB時,需要將自定義的POJO類通過mongoDB自帶的JSON.serialize序列化成一個Json格式的字串,但一直報json don't serialize object異常,又不想使用第三方的jar包,網上到處搜沒搜到。最後看api文件實現Ob
微信瀏覽器自帶的返回上一頁的停留位置
我們做過微信的應該都知道,微信自帶的返回上一頁,就是重新開啟頁面。並不是返回歷史頁面。我們PC端的瀏覽器是返回歷史頁面。點選返回頁面之後 上一個頁面的scrollTop還是之前沒有進入新頁面的位置。
springMVC返回的json日期為Long的格式化
angle 評論 tle 想要 ron serialize contex 7月10日 tac springMVC返回的json日期為Long的格式化 標簽: spring mvcjson格式化mybatis時間 2015-10-30 14:48 1467人閱讀 評論
生成帶星期的日期格式
except stat tac 日期轉換 nts edate 問題 stack format 今天遇到一個日期轉換問題需要生成 如:2017-11-29 星期三 16:45 的日期格式的數據,所以記錄一下。 //例如輸入:2017-11-29 16:30:00 則輸出:2
SpringBoot學習筆記(5):處理前端JSON返回的日期的格式
處理 date() ring row 學習筆記 post 直觀 val rtt SpringBoot學習筆記(4):處理前端JSON返回的日期的格式 問題描述 前端頁面顯示的時間為毫秒格式,不利於直觀顯示! 解決方法1——後端解決 public class Flow