Spring MVC来返回Json数据时,希望格式化输出其中的日期的问题

我使用Spring MVC来返回Json数据时,希望格式化输出其中的日期,但是一直都有问题:输出的一直都是数字,不能正常格式化。

Spring的版本是:3.0.3, Jackson JSON的版本是:1.9.4

 

以下是我的代码: Spring MVC.xml文件配置如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 组件扫描,扫描包com.springmvc.controller的过程中如果发现注解,根据注解类型判断是何种类型的组件 -->
    <context:component-scan base-package="wzf.investment.common.controller"></context:component-scan>
    <context:component-scan base-package="wzf.investment.stock.controller"></context:component-scan>
    
    <mvc:annotation-driven/>
    
    <bean id="internalResourceViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.JstlView</value>
        </property>
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

 

实体类为:

 

import java.util.Date;

import org.codehaus.jackson.map.annotate.JsonSerialize;

import wzf.investment.base.component.JsonDateSerializer;
import wzf.investment.base.entity.BaseEntity;

public class JobSchedule extends BaseEntity{
    private static final long serialVersionUID = 1L;

    private Date startTime;
    private Date endTime;

    
    @JsonSerialize(using = JsonDateSerializer.class) 
    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    @JsonSerialize(using = JsonDateSerializer.class) 
    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
}

 

格式化日期的代码为:

 

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;
import org.springframework.stereotype.Component;

@Component
public class JsonDateSerializer extends JsonSerializer<Date> {
    
    @Override
    public void serialize(Date value, JsonGenerator jgen,
            SerializerProvider provider) throws IOException,
            JsonProcessingException {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = formatter.format(value);
        jgen.writeString(formattedDate);
    }
}

 

控制器中的代码为:

 

@RequestMapping("/list")
    //可处理带请求参数的action
    public @ResponseBody JobSchedule grid(){
        JobSchedule jobSchedule = new JobSchedule();
        jobSchedule.setStartTime(new Date());
        jobSchedule.setEndTime(new Date());
        return jobSchedule;
    }

 

访问的结果一直都没能够将日期格式化成“yyyy-MM-dd”的样式,输出的一直都是数字,这是问什么呀?求帮忙!!!

0
mengfei86
超越自己 http://blog.csdn.net/hyman_xie/article/details/7672350 你看下这个就可以了,我用这个解决问题了
接近 5 年之前 回复

3个回答

从你提供的代码来看你只是new了一个JsonDateSerializer ,并没有交给objectmapper使用,他是不会起作用的。
关于responsebody的json处理是用MappingJacksonHttpMessageConverter来处理,在这个类里面调用objectmapper

0

没有问题,可以啊!可能是你其他地方错了。

0

你的注解要写在get方法上,不是写在属性上

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring mvc 返回json 时间格式处理
从后台返回json格式的数据,timestamp 与datetime 类型的数据,在前台显示为long类型的, 很是苦恼, 研究了很长时间,下面总结一下: SpringMVC使用@ResponseBody时返回json的日期格式        前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co
spring 4 mvc,java 8中针对日期的一个处理方法
在spring mvc中,经常遇到日期问题 [code=&quot;java&quot;] @RestController @RequestMapping(&quot;/api/datetime/&quot;) final class DateTimeController { @RequestMapping(value = &quot;date&quot;, method = RequestMethod.POST) ...
SpringBoot返回JSON数据date日期格式化,解决返回为TIMESTAMP时间戳格式
DB中存储的是时间格式,但是使用@RestController返回的JSON数据时,时间格式转换为了时间戳的形式,现改为直接返回的是时间格式。 解决前: 解决后: 解决方式: 在yml文件中加入 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss 在properties文件中 spring.jackson.date-format=...
SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
hello,我的小可爱们,前天去参加了人生第一次比较正式的面试,总体还算比较顺利,今天就已经拿到了offer,心里还是蛮开心的,但我深刻的知道,作为一个非计算机专业出身的我还有更长的路要走,我还是要拿出十二分的努力去学习,去快速成长,在这里给自己定一个目标,明年真正毕业前,努力让自己的能力成长到可以达到月薪过万的水准。好了,废话不多说,开始今天的分享。 同样最近在做项目的过程中,发现实体类中
解决SpringMVC使用@ResponseBody返回json数据时间类型的数据未格式化的问题
如题!! 解决办法: 在 spring-web.xml 配置文件中添加如下配置!!! &amp;amp;lt;!-- 1: 启动注解,注册服务,如验证框架、全局类型转换器--&amp;amp;gt; &amp;amp;lt;mvc:annotation-driven&amp;amp;gt; &amp;amp;lt;!-- 解决ResponseBody返回的json数据中时间类型的数据未格式化且只返回时间戳的问题 --&amp;amp;gt; ...
SpringMVC解决@ResponseBody返回Json的Date日期类型的转换问题
在做项目的时候,发现后台把Date类型的属性以json字符串的形式返回,前台拿不到转换后的日期格式。 即使我配置了日期转换器: &amp;lt;bean id=&quot;conversionService&quot; class=&quot;org.springframework.format.support.FormattingConversionServiceFactoryBean&quot;&amp;gt; &amp;lt...
解决springmvc返回json数据IE出现文件下载和json数据中文乱码问题
springmvc返回json数据在IE浏览器中访问,会出现文件下载现象,这是因为IE10以下不支持application/json格式的Response响应,也就是说低于IE10版本一下的IE浏览器都需要使用text/html格式的Response响应;
springmvc 对时间参数,以及返回json数据时时间类型的一些处理
## springmvc 对时间参数,以及返回json数据时时间类型的一些处理 springmvc拦截器对时间参数的处理: 我们都知道,一般传来的时间参数都是String类型的,以前一般的做法时用一个String 类型的变量接收转换后再set到我的对应的参数属性中,这样写很麻烦,其实spring 的给包中给我们提供了这样一个注解 他能够直接把我们接收到的String类型的时间参数转化位da...
SpringMVC返回的对象数据生成JSON格式返回时出现文件下载的解决方案
 在dispatcherServlet-servlet.xml中添加如下信息:&amp;lt;mvc:annotation-driven&amp;gt;   &amp;lt;mvc:message-converters&amp;gt;    &amp;lt;bean id=&quot;mappingJacksonHttpMessageConverter&quot;          class=&quot;org.springframework.http.co...
springmvc 返回json格式中date的处理
springmvc 返回json格式中date的处理 在使用springmvc 的过程中,直接返回json对象的时候,如果包含date类型的对象,默认转换成json的时候是转换成long型的格式,不是我们常用的"yyyy-MM-dd HH:mm:ss"格式。 这时候需要做一个转换,比较喜欢下面的方式,直接在实体类中注解: @JsonFormat(pattern = "yyyy-MM-dd H
SpringMVC返回JSON数据各种坑
SpringMVC返回JSON数据注意点-SpringMVC返回JSON数据 –配置SpringMVC文件 –Controller.java配置注解 –界面接收Controller的方法返回数据配置SpringMVC.xml文件<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/
spring mvc json 时间格式处理
从后台返回json格式的数据,timestamp 类型的数据,在前台显示为long类型的, 很是苦恼, 研究了很长时间,下面总结一下: 方法一:全局处理(这种方法我没试验过)
SpringMVC返回JSON数据时报406错误代码
问题描述 在SSM框架进行开发的时候,为了简便我们更多的使用注解方式,而不会使用配置文件的方式!当我们在Controller返回json类型数据到view的时候,通常使用@ResponseBody表示该方法返回值以json格式返回。然而有时候已经写了该注解当运行的时候会报406错误代码!(注:406 (不接受) 无法使用请求的内容特性响应请求的网页)解决方案我们通常会忽略是否缺少jar包,因为发现...
springmvc fastjson 反序列化时间格式化
试了一下很多网上的方法,最后发现还是在实体类上面的日期字段加上如下注解,可以完成格式化操作,否则默认就都是时间戳的格式: @JSONField (format="yyyy-MM-dd HH:mm:ss") public Date birthday; @JSONField (format="yyyy-MM-dd HH:mm:ss") public Date birthday;
SpringMVC返回JSON数据出现乱码导致访问速度很慢 和 返回JSON数据,IE10以下浏览器提示下载问题
今天公司测试发现在IE9以下浏览器,程序好多功能点返回的JSON都是提示下载。 开发环境和框架: springboot(springMVC+mybatis) 前端:jquery easyui 看了下后端代码,controller里面基本都是声明返回的数据格式为MediaType.APPLICATION_JSON,如下: @ResponseBody @RequestMapping(val...
Spring MVC避免IE提示下载返回的JSON 数据——解决办法
在IE低版本下接收Spring MVC @ResponseBody 返回的JSON 会提示下载保存。在chrome下没有问题。 解决办法 是:
关于springmvc 返回json数据null字段的显示问题
最近做项目(ssm框架)的时候,发现从后台返回的json(fastjson)数据对应不上实体类,从数据库查询的数据,如果对应的实体类的字段没有信息的话,json数据里面就不显示,这不是我想要的结果,准确说是前端头疼的事情,然后我看了一下fastjson的配置,最后解决了现在上代码
Spring MVC 接收与返回 JSON 数据
Spring MVC 接收与返回 JSON 数据前言 以下内容是通过书籍中学习,做一下笔记,以此来巩固自己的知识 使用 @RequestBody 注解来接收 JSON 格式的数据,并将其转换成对应的数据类型 使用 Jackson 与 Fastjson 来解析和生成 JSON 环境 系统:macOS 10.12.5 开发工具:Eclipse 4.6.2 Spr
springMVC处理时间问题
1.直接在实体类需要处理的属性前加上@JsonFormat(pattern=&quot;yyyy-MM-dd&quot;,timezone=&quot;GMT-8&quot;) 2.直接在springMVC配置文件中加上如下的代码(全局) &amp;lt;mvc:annotation-driven&amp;gt;     &amp;lt;mvc:message-converters&amp;gt;         &amp;lt;bean class=&quot;org.sprin...
Spring mvc 返回的json数据有null值,如何过滤掉不传递到前台
有些model,里面很多属性是null,我们希望过滤掉为null的属性,比如 a = null, b = "kk",传递到前台的只有{"b":"kk"} 点击(此处)折叠或打开 mvc:annotation-driven>         !-- 强化参数接收 -->         mvc:argument-resolvers>             
解决springmvc 返回JSON报406错误
出现这个的原因是spring MVC 框架是允许.html .jpg .js .css .png 等这些静态资源不用通过urlmapping而直接访问的。如果你的urlmapping使用了这些静态资源部分或者全部的名称,那么即时你的请求的accpet为application/json,SpringMVC框架也会默认你使用了静态资源的请求。所以就会报406的错误。 总之,返回JSON的时候路径结尾
maven+springmvc中配置返回json格式数据
1、在pom中引入jackson依赖 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.fasterxml.jackson.core&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jackson-databind&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;2.9.6&amp;lt;/version&amp;gt
SpringMVC——-Controller返回格式化数据如JSON、XML的配置方式和机制
1、本文内容 我们在Web项目开发过程中,一般来说访问一个处理器,然后会返回一个视图,或者跳转到另外的处理器。但是随着项目越来越复杂,需求越来越复杂,对于处理器返回数据的类型要求也越来越多。比如要求能够返回JSON类型的数据、或者能够返回XML格式的数据,或者返回二进制的数据流等等。 SpringMVC提供了这样的一个机制,允许控制器返回的数据不经过正常的视图处理流程,而是直接将返回的数据写入响应...
springMVC返回json,出现时Null属性不显示的解决方法
springMVC返回对象的时候,其实是把对象转化为json,依靠的是spring-mvc.xml id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> name="supportedMediaTypes">
spring mvc 返回json数据的四种方式
一.返回ModelAndView,其中包含map集/* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式为{&quot;valid&quot;,true}) */ @RequestMapping(value = &quot;/checkNameExistsMethod2&quot;, produces = ...
springmvc .html请求返回json数据转换错误
数据转换管理器 .html请求返回对象转换错误
Spring4 MVC 返回json格式时候 设置不返回null值属性的问题
一、问题描述    前段时间接手一个api项目,已经完成框架部分了。遇到的问题就是action在返回对象的时候,通过RequestMappingHandlerAdapter转化为Json字符串时出现null值。二、解决过程1.经过搜索以后发现可以通过配置com.fasterxml.jackson.databind.ObjectMapper的参数来解决这个问题。&amp;lt;bean id=&quot;mappin...
SpringMVC4.0以后版本返回json格式数据问题
1.创建创建web项目,加入SpringMVC的jar,我这里演示用spring-framework-4.2.3.RELEASE。jar包如下图所示: 2.配置web.xml如下:       xmlns="http://java.sun.com/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
springMVC 返回json乱码问题
多次遇见过这个问题,springMVC下返回给前端的json字符串,中文总是乱码,每次都要去翻一下之前的代码来看解决办法,有必要做个笔记记一下这个问题了。   解决方法: 在方法注解中加入如下: @RequestMapping(value = &quot;/auditingSelector&quot;, produces = &quot;application/json;charset=UTF-8&quot;) ...
Spring Mvc 返回json的时间格式设置
https://www.jb51.net/article/103032.htm
SpringMVC项目如何全局格式化日期格式
在我们平时的开发工作中,经常会遇到各种格式的日期类型,为了后端开发方便性,日期类型我们一般不做处理
SpringMVC提供接口返回json数据
项目要提供接口,供PC、平板、手机端调用,照这样看来,只能返回json数据,好在SpringMVC提供这种接口非常简单, 相关配置做好后,方法上增加@ResponseBody即可,代码如下所示: @Controller @RequestMapping(value = "/user") public class UserController { @Autowired IdentitySe
使用springMVC返回json时,浏览器会弹出下载窗口问题
直接入正题,楼主遇到使用springMVC返回json会弹窗的问题,任意浏览器都有,所以一定是代码问题,百度的方法试了一圈以后,找到了解决办法 一 .在servlet.xml文件中添加代码                                                                                    
springMVC返回json数据时date类型数据被转成long类型
在项目的过程中肯定会遇到ajax请求,但是再用的过程中会发现,在数据库中好好的时间类型数据:2017-05-04 17:52:24 在转json的时候,得到的就不是时间格式了 而是145245121这样的long类型数据,但是如果你单独去请求该对象的该属性,得到的是正常的时间类型格式,后面查阅了一番,发现是SpringMvc框架在ajax请求转json的时候,会将date类型的数据转成long类型
SpringMVC+Hibernate控制器返回json时的坑
坑1: Spring3.x和Spring4.xSpring5.x使用的不是同样的jar包 正确的如下: spring-mvc.xml &amp;amp;amp;amp;lt;mvc:annotation-driven&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;mvc:message-converters&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;bean class=&am
SpringMVC使用@ResponseBody日期返回时间戳的问题
使用springMVC的@ResponseBody注解返回日期时,返回给前台页面显示的是一个时间戳, 解决方法就是自己写一个工具类,继承JsonSerializer泛型类型为日期Date 在对应POJO类日期字段的get方法上 加上如下图所示的注解 解决显示时间戳的问题 消息转换器用的默认的jackson 使用fastjson的暂时还不知道怎么解决… ...
springmvc中请求*.html返回json时报406错误解决
方法一: 修改web.xml,添加url拦截格式。 方法二:
springMVC之如何返回Json数据
环境准备: 1.导入转换Json格式所需要的jar包 2.配置Json转换器注解配置:如果使用<mvc:annotation-dirven/>,就不需要配置转换器了,<mvc:annotation-dirven/> 会默认加载xml配置: 在适配器中加入json转换器<bean class="org.springframework.web.servlet.mvc.method.annota
jackson-annotations jackson-core jackson-databind
spring mvc返回json数据需要用到的三个jar
jackson-all-1.9.11.jar
Spring MVC 3.0 返回JSON数据 用到的库 jackson-all-1.9.11.jar
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习python时遇到的问题 区块链怎么来的