springMVC返回的json日期为Long的格式化

springMVC返回的json日期为Long的格式化

标签: spring mvcjson格式化mybatis时间

2015-10-30 14:48 1467人阅读 评论(0) 收藏 举报

 分类:

spring(4) 

springMVC+myBatis查询数据,得到date类型数据,返回json日期为Long数字(毫秒数)的日期格式化方案: 
1、springMVC配置文件统一返回格式:

 1 <mvc:annotation-driven>
 2     <!-- 处理responseBody 里面日期类型 -->
 3         <mvc:message-converters>
 4             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
 5                 <property name="objectMapper">
 6                     <bean class="com.fasterxml.jackson.databind.ObjectMapper">
 7                         <property name="dateFormat">
 8                             <bean class="java.text.SimpleDateFormat">
 9                                 <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
10                             </bean>
11                         </property>
12                     </bean>
13                 </property>
14             </bean>
15         </mvc:message-converters>
16     </mvc:annotation-driven>

2、jackson 注解处理

@JsonFormat  :
        此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createtime;

@JsonIgnoreProperties :
         此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。  

@JsonIgnore  :
         此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。 

@JsonSerialize  

 // 反序列化一个固定格式的Date
    @JsonDeserialize(using = CustomDateDeserialize.class)
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }   

 // 序列化指定格式的double格式
    @JsonSerialize(using = CustomDoubleSerialize.class)
    public double getSalary() {
        return salary;
    }    

自定义一个格式化类:
public class CustomDateDeserialize extends JsonDeserializer<Date> {    

    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    

    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException {    

        Date date = null;
        try {
            date = sdf.parse(jp.getText());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}    

3、自定义注解

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

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;  

/**
 * ClassName:DateJsonSerializer <br/>
 * Function: 日期类型格式化,格式化为:yyyy-MM-dd HH:mm:ss 格式. 用法如下:<br/>
 * Reason:   @JsonSerialize(using=DateJsonSerializer.class)
 *           @Column(name="BIRTHDAY")
 *           public Date getBirthday() {
 *              return birthday;
 *           }
 *          . <br/>
 * Date:     2014年7月10日 下午1:26:08 <br/>
 * @author   zhangzhaoyu
 * @version   1.0
 * @since    JDK 1.7
 * @see
 */
public class DateJsonSerializer extends JsonSerializer<Date> {  

    @Override
    public void serialize(Date value, JsonGenerator jgen,
            SerializerProvider provider) throws IOException,
            JsonProcessingException {
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String formattedDate = formatter.format(value);
         jgen.writeString(formattedDate);
    }
}    
时间: 2024-10-10 07:01:47

springMVC返回的json日期为Long的格式化的相关文章

SpringMVC+MyBatis 返回的json日期为Long的解决方案

jackson方案: jackson中有一个@JsonFormat注解,将它配置到Date类型的get方法上后,jackson就会按照配置的格式转换日期类型,具体使用类型: @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")   public Date getCreate_date() {   return this.createTime;   }   @JsonFormat(pattern=&

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项目需要添加的依赖: <!--

SpringMVC返回Json,自定义Json中Date类型格式

http://www.cnblogs.com/jsczljh/p/3654636.html ———————————————————————————————————————————————————————————— SpringMVC返回Json,自定义Json中Date类型格式 SpringMVC返回Json数据依赖jackson这个开源的第三方类库. 若不加任何说明情况下Date类型将以时间戳的形式转换为Json并返回. jackson提供了一些自定义格式的方法.我们只需继承它的抽象类Json

配置SpringMVC返回JSON遇到的坑

坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar 坑二:配置文件的配置信息跟jackson的版本有关. 版本一: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter 版本二:org.springframework.http.converter.json

SpringMVC返回json数据的三种方式

SpringMVC返回json数据的三种方式:http://blog.csdn.net/shan9liang/article/details/42181345 上述第三种方法:可能会出现这个jar包没有的情况,引入即可,下面pom引入即可 java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException

SpringMVC 返回JSON和JSP页面xml配置

SpringMVC 返回JSON和JSP页面xml配置 代码1: <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> <!-- Enables the Spring MVC @Controller programming model --> <annotation-driven /> <!-- Handles HTTP GET re

SpringMVC返回Json失败,请检查是否配置了Jackson

背景 需要一套干净的Spring+Spring MVC+Mybatis框架,框架写到返回Json的环节报错了. 问题 无法Json,报406 解决 需要配置Json工具包,这里用Jackson Maven Jackson         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->         <dependency>             <gro

【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-

springmvc 返回xml

需求: 1.springmvc返回xml: 技术及环境: Spring 4.3.1.RELEASE JDK 1.8 IDEA 15.0.6 Maven 3 实现: spirngxml的配置主要如下: 添加项目依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.1.RELEASE