`

spring mvc3中JACKSON序列化日期格式的问题

阅读更多
在SPRING MVC3中,比如做REST时,经常要用JASON去解析,遇到了日期格式化的问题,
请看例子:

1) 比如有一个POJO
  package com.loiane.model;

import java.util.Date;

import org.codehaus.jackson.annotate.JsonAutoDetect;

@JsonAutoDetect
@Entity
public class Company {

    private int id;
    private double price;
    private String company;
    private Date date;
    private String size;
    private byte visible;
}

2)在controller中,返回一个MAP
   public @ResponseBody Map<String,List<Company>> view() throws Exception

3) 于是SPIRNG MVC返回如下的JSON字符:
   {"total":27,"data":[{"price":71.72,"company":"3m Co","visible":1,"id":1,"size":"large","date":1188615600000},{"price":29.01,"company":"Aloca
Inc","visible":0,"id":2,"size":"medium","date":1185937200000},{"price":83.81,"company":"Altria Group
Inc","visible":0,"id":3,"size":"large","date":1186110000000
。。。。。。。。。。。。。。。。

4) 可以看到,返回的时间格式不大好看

5)于是,可以这样设置:
   @JsonSerialize(using=JsonDateSerializer.class)
public Date getDate() {
    return date;
}
其中   JsonDateSerializer是新编写的类,继承了JsonSerializer
  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>{

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");

    @Override
    public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
            throws IOException, JsonProcessingException {

        String formattedDate = dateFormat.format(date);

        gen.writeString(formattedDate);
    }

}

   很简单,格式化一下,这下输出JSON就可以了
{"total":27,"data":[{"price":71.72,"company":"3m Co","visible":1,"id":1,"size":"large","date":"09-01-2007"},{"price":29.01,"company":"Aloca
Inc","visible":0,"id":2,"size":"medium","date":"08-01-2007"},{"price":83.81,"company":"Altria Group
Inc","visible":0,"id":3,"size":"large","date":"08-03-2007"},{"price":52.55,"company":"American Express Company","visible":1,"id":4,"size":"extra
large","date":"01-04-2008"},{"price":64.13,"company":"American International Group
Inc.","visible":1,"id":5,"size":"small","date":"03-04-2008"},{"price":31.61,"company":"AT&T Inc.","visible":0,"id":6,"size":"extra
large","date":"02-01-2008"},{"price":75.43,"company":"Boeing Co.","visible":1,"id":7,"size":"large","date":"01-01-2008"},{"price":67.27,"company":"Caterpillar
Inc.","visible":1,"id":8,"size":"medium","date":"12-03-2007"},{"price":49.37,"company":"Citigroup,
Inc.","visible":1,"id":9,"size":"large","date":"11-24-2007"},{"price":40.48,"company":"E.I. du Pont de Nemours and Company","visible":0,"id":10,"size":"extra
large","date":"05-09-2007"}],"success":true}
2
1
分享到:
评论
1 楼 luohuahui 2013-03-23  
转换的日期不是北京时间(GMT+08:00)的?要怎样设置才能转换为北京时间(GMT+08:00)

相关推荐

    spring mvc json&&jackson jquery js

    2. **配置Jackson**:在Spring配置文件中启用Jackson并配置其属性,如日期格式化。 3. **实体类注解**:在Java实体类中使用Jackson注解,如`@JsonProperty`,控制JSON序列化和反序列化。 4. **前端页面**:创建HTML...

    Spring MVC 学习笔记 九 json格式的输入和输出

    如果需要自定义JSON序列化的行为,例如忽略某些字段或使用特定的日期格式,可以使用Jackson的`@JsonInclude`、`@JsonFormat`等注解。还可以创建自定义的`JsonSerializer`和`JsonDeserializer`实现特定逻辑。 6. **...

    Spring MVC所需jar包

    7. **Jackson 或 Gson**:用于 JSON 数据的序列化和反序列化,例如 `jackson-databind.jar`、`jackson-core.jar` 和 `jackson-annotations.jar`,或者 `gson.jar`。 8. **Dojo 或 jQuery**:如果在前端使用 ...

    spring mvc restful service

    - **JSON**:Spring MVC使用Jackson库来序列化和反序列化JSON数据。`@RequestBody`用于将请求体中的JSON数据转换为Java对象,而`@ResponseBody`则将方法的返回值转换为JSON发送回客户端。 - **XML**:对于XML,...

    jackson所需jar包springmvc中稳定版

    Jackson是Java世界中广泛使用的JSON处理库,它提供了序列化和反序列化的功能,使得Java对象可以方便地转换为JSON格式,反之亦然。在Spring MVC框架中,Jackson被用作默认的JSON转换器,帮助处理HTTP请求和响应中的...

    spring mvc集成webservice

    1. **添加依赖**:在项目中引入Spring的Web服务模块(如`spring-ws-core`),以及可能需要的其他依赖,如`jackson-databind`用于JSON序列化。 2. **创建WSDL**:定义Web服务的接口,这通常是一个WSDL(Web Service ...

    Spring MVC 数据转换和格式化.docx

    在Spring MVC框架中,数据转换和格式化是一个关键部分,它允许我们处理各种类型的输入和输出数据,确保数据能够在客户端和服务器之间正确地传递。HttpMessageConverter是Spring MVC中的核心组件,负责处理HTTP请求和...

    spring-framework-4.3.8,Springmvc框架需要的jar包及相匹配jackson包,

    在实际开发中,你还可以自定义序列化和反序列化的行为,例如忽略某些字段、自定义日期格式等,只需在你的Java类上使用Jackson的注解即可。 总之,Spring Framework 4.3.8 和 Jackson 库的结合使用,能够帮助开发者...

    spring mvc架包

    9. **JSON 支持**: 通过集成 Jackson 或者 Gson,Spring MVC 可以方便地进行 JSON 数据的序列化和反序列化,用于 RESTful API 的开发。 10. **上传下载支持**: Spring MVC 提供了文件上传和下载的功能,通过 `...

    Spring MVC框架的各种依赖包下载

    7. **Jackson或Gson**:用于JSON数据的序列化和反序列化,Spring MVC默认支持这两种库,便于前后端数据交换。 8. **Hibernate或MyBatis**:如果应用需要持久化数据,这些ORM(对象关系映射)框架可以与Spring MVC...

    Spring MVC REST Demo

    此外,为了提供JSON格式的数据交换,你可能还需要使用如Jackson或Gson这样的库进行序列化和反序列化。 总结来说,"Spring MVC REST Demo"项目展示了如何在Spring MVC框架中利用REST原则创建Web服务。这包括定义...

    四. Spring MVC 3 支持json及 常见错误解决

    在Spring MVC 3中,对JSON的支持是其重要的特性之一,它使得前后端数据交互更加便捷,尤其在如今的Web应用中,JSON已经成为数据传输的标准格式。本篇将深入探讨Spring MVC 3对JSON的支持以及解决常见错误的方法。 ...

    基于注解Spring MVC环境搭建

    创建Spring MVC项目时,需要在`pom.xml`文件中添加Spring MVC、Spring核心以及其他依赖,如Spring Web和Jackson库(用于JSON序列化和反序列化)。 10. **IDE集成** 使用Eclipse、IntelliJ IDEA等IDE,可以快速...

    spring mvc(整合了json)

    在 Model 类中,我们可以使用这些注解来定制序列化和反序列化的行为。 4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解...

    helloworld spring mvc

    Spring MVC项目会依赖Spring Framework的相应模块,以及其他如Jackson、Thymeleaf等库,以实现JSON序列化、模板引擎等功能。 6. **Lib**或**lib**目录(如果使用非构建工具管理依赖):这里包含项目所需的JAR库,如...

    spring mvc框架需要用到的jar包

    11. **jackson或者gson.jar**:JSON序列化和反序列化的库,Spring MVC通常使用它们将Java对象转换为JSON格式,以便于前后端的数据交换。 12. **validation-api.jar** 和 **hibernate-validator.jar**:用于执行Bean...

    Spring mvc工程所需jar包资源

    15. **json处理库**:如Jackson或Gson,用于JSON序列化和反序列化,便于前后端数据交换。 在构建Spring MVC项目时,这些jar包需要添加到项目的类路径中,以确保所有依赖能够正确解析并运行。通常,现代的构建工具如...

    spring使用jackson实现json

    四、使用Jackson序列化与反序列化 1. 序列化:将Java对象转换为JSON ```java import com.fasterxml.jackson.databind.ObjectMapper; // 创建一个对象 MyObject obj = new MyObject(); // 使用ObjectMapper将其转换...

    spring mvc拦截器过滤json中的null值

    注意,此解决方案使用了Jackson库来解析和序列化JSON,确保你的项目中已经包含了`jackson-databind`依赖。如果你的项目使用了其他JSON库,如Gson,那么你需要相应地调整JSON处理部分的代码。 通过这种方式,我们...

    Spring MVC返回JSON数据 用到的jar包

    - **日期格式化**:对于日期类型的属性,需要特别处理JSON序列化,可以使用`@JsonFormat`注解来指定日期格式。 总的来说,Spring MVC结合Jackson库,能够方便地处理JSON数据,实现与前端的高效通信。在实际项目中...

Global site tag (gtag.js) - Google Analytics