1. 程式人生 > >Jackson JSON對日期格式的解析設定

Jackson JSON對日期格式的解析設定

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

伺服器端:採用Spring MVC3 + MyBatis3架構設計,使用Jackson JSON將Java物件轉換成JSON格式;

Spring:3.2.2.RELEASE

MyBatis:3.2.1

mybatis-spring:1.2.0

前端:採用jQuery EasyUI框架,使用 jquery-json-2.4.js 將javascript物件轉換成JSON格式;

互動方式:伺服器端和前端採用json格式進行資料互動。

遇到問題:伺服器端對Java物件序列化後,日期格式為一長串數字(如下圖),前端接收之後需要轉碼,很麻煩。於是想到從Jackson JSON框架著手解決。

解決方案:

設定Jackson JSON的對日期的序列化格式即可,程式碼如下:

[java]  view plain
copy
  1. //設定日期格式  
  2. SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  3. mapper.setDateFormat(fmt);  
  4.   
  5. //後續轉換  
  6. ...  
  7. json = mapper.writeValueAsString(obj);  
  8. ...  

這樣設定之後,得到的JSON格式中,日期就變成了“2013-03-25 10:20:00”這樣的格式。

前端需要將日期編碼成毫秒數,傳送到伺服器,Jackson JSON才能正確解析,否則提示無法轉換成Date型別。

可以使用Javascript的Date函式的getTime()方法即可,例如:

[javascript]  view plain copy
  1. var d = new Date($("#userBirthday").datebox('getValue'));  
  2. //var d = new Date();  
  3. u.userBirthday = d.getTime(); //將日期轉換成毫秒數  

這樣,服務端將日期做成字串寫到JSON中傳到前端,前端將日期轉換成毫秒數傳送到伺服器端,這樣程式就能正常工作了。

最後上個圖看看(自己閒著沒事,搭建的這個系統框架,旨在學習Spring、MyBatis、Maven、jQuery、jQuery EasyUI):

後附上一個簡單的例子:Javascript物件轉換為JSON

[html]  view plain copy
  1. <html>  
  2. <head>  
  3.     <title>使用者管理</title>  
  4.     <script type="text/javascript" src="jquery-1.9.1.js"></script>  
  5.     <script type="text/javascript" src="jquery.json-2.4.js"></script>  
  6.     <script>  
  7.         function jsObjToJson()  
  8.         {  
  9.             var o = new Object();  
  10.             var d = new Date();  
  11.   
  12.             o.id = "1";  
  13.             o.name = "總公司";  
  14.             o.timestamp = d.getTime(); //將日期轉換成毫秒數  
  15.   
  16.             var postData = 'reqJson=' + $.toJSON(o); //轉換成json格式  
  17.             alert(postData);  
  18.         }  
  19.     </script>  
  20. </head>  
  21. <body>  
  22.     <h3>Javascript物件轉換成JSON</h3>  
  23.     <input type="button" value="測試" onclick="jsObjToJson()" />  
  24. </body>  
  25. </html>  


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述