Jackson JSON對日期格式的解析設定
阿新 • • 發佈:2018-11-12
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!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- //設定日期格式
- SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- mapper.setDateFormat(fmt);
- //後續轉換
- ...
- json = mapper.writeValueAsString(obj);
- ...
這樣設定之後,得到的JSON格式中,日期就變成了“2013-03-25 10:20:00”這樣的格式。
前端需要將日期編碼成毫秒數,傳送到伺服器,Jackson JSON才能正確解析,否則提示無法轉換成Date型別。
可以使用Javascript的Date函式的getTime()方法即可,例如:
[javascript] view plain copy- var d = new Date($("#userBirthday").datebox('getValue'));
- //var d = new Date();
- u.userBirthday = d.getTime(); //將日期轉換成毫秒數
這樣,服務端將日期做成字串寫到JSON中傳到前端,前端將日期轉換成毫秒數傳送到伺服器端,這樣程式就能正常工作了。
最後上個圖看看(自己閒著沒事,搭建的這個系統框架,旨在學習Spring、MyBatis、Maven、jQuery、jQuery EasyUI):
最
後附上一個簡單的例子:Javascript物件轉換為JSON
[html] view plain copy- <html>
- <head>
- <title>使用者管理</title>
- <script type="text/javascript" src="jquery-1.9.1.js"></script>
- <script type="text/javascript" src="jquery.json-2.4.js"></script>
- <script>
- function jsObjToJson()
- {
- var o = new Object();
- var d = new Date();
- o.id = "1";
- o.name = "總公司";
- o.timestamp = d.getTime(); //將日期轉換成毫秒數
- var postData = 'reqJson=' + $.toJSON(o); //轉換成json格式
- alert(postData);
- }
- </script>
- </head>
- <body>
- <h3>Javascript物件轉換成JSON</h3>
- <input type="button" value="測試" onclick="jsObjToJson()" />
- </body>
- </html>