Jackson JSON对日期格式的解析设置

服务器端:采用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 plaincopy

  1. //设置日期格式
  2. SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  3. mapper.setDateFormat(fmt);
  4. //后续转换
  5. ...
  6. json = mapper.writeValueAsString(obj);
  7. ...

这样设置之后,得到的JSON格式中,日期就变成了“2013-03-25 10:20:00”这样的格式。

前端需要将日期编码成毫秒数,发送到服务器,Jackson JSON才能正确解析,否则提示无法转换成Date类型。

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

[javascript] view plaincopy

  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 plaincopy

  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. o.id = "1";
  12. o.name = "总公司";
  13. o.timestamp = d.getTime(); //将日期转换成毫秒数
  14. var postData = ‘reqJson=‘ + $.toJSON(o); //转换成json格式
  15. alert(postData);
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <h3>Javascript对象转换成JSON</h3>
  21. <input type="button" value="测试" onclick="jsObjToJson()" />
  22. </body>
  23. </html>

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skinchqqhah/p/10350412.html

时间: 2024-08-28 03:29:00

Jackson JSON对日期格式的解析设置的相关文章

Json 的日期格式转换成DateTime

JSON 的日期形式:"/Date(1242357713797+0800)/" , 下面我们就用以下C#的方法将他转换成DateTime类型: /// <summary> /// Json 的日期格式与.Net DateTime类型的转换/// </summary> /// <param name="jsonDate">Json 的日期,例如:/Date(928120800000+0800)/</param> ///

spring Mvc json返回json的日期格式问题

(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加jackson-mapper-asl <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version

springmvc--json--返回json的日期格式问题

(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加jackson-mapper-asl 1 <dependency> 2 <groupId>org.codehaus.jackson</groupId> 3 <artifactId>jackson-mapper-asl</artifactId> 4 <

C# JSON序列化日期格式问题

默认序列化日期为1970至今的时间戳 需要在json.convert中做一些设置 //JavaScriptSerializer js = new JavaScriptSerializer(); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 //timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH

SpringMVC 返回json的日期格式的问题的解决方法

springMVC中josn的日期类型输出默认是时间戳,需要进行日期格式转换. 格式化输出json 方法1. 在实体类的getter方法上面添加@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 就可以将json的日期格式化.需要导入的json的相关jar包 @JsonFromat存在于jackson-annotations-2.1.0.jar中. Maven项目需要添加的依赖: <!--

struts2 json 输出日期格式不正确

struts2 输出json中 日期出现:2013-12-17T15:57:47 错误格式的数据 原因:struts2 json插件对日期的格式化有问题 解决方法:在实体类的日期的get方法上加注解:@JSON(format="yy-MM-dd HH:mm:ss") 例如: @JSON(format = "yy-MM-dd HH:mm:ss") public Date getFindtime() { return findtime; }

Python 自带Json处理日期格式出错

使用python自带的json,将数据转换为json数据时,datetime格式的数据会报错,出现如下错误提示:datetimeTypeError: datetime.datetime.now() is not JSON serializable. 这是因为python自带的json无法处理,只好重写构造json类,遇到日期特殊处理,其余的用内置的就行.代码: import json import datetime class DateEncoder(json.JSONEncoder): def

Newtonsoft.Json 处理日期格式

Newtonsoft.Json.Converters.IsoDateTimeConverter iso = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); iso.DateTimeFormat = "yyyy/M/d HH:mm:ss"; string listvm = JsonConvert.SerializeObject(listVM, Newtonsoft.Json.Formatting.Indented, iso);

14、java实现poi操作excel,包括读和写日期格式,并且设置字体样式

1.首先大家来看导出的结果 下边就是导出的代码了 protected void testExcel() throws IOException{ String path=getServletContext().getRealPath("/WEB-INF/Template/timeSequence.xlsx"); System.out.println(path); InputStream input=new FileInputStream(path); XSSFWorkbook workB