-
Spring MVC来返回Json数据时,希望格式化输出其中的日期的问题30
我使用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”的样式,输出的一直都是数字,这是问什么呀?求帮忙!!!
问题补充:<div class="quote_title">xiaoZ5919 写道</div><div class="quote_div">从你提供的代码来看你只是new了一个JsonDateSerializer ,并没有交给objectmapper使用,他是不会起作用的。 <br />关于responsebody的json处理是用MappingJacksonHttpMessageConverter来处理,在这个类里面调用objectmapper</div> <br /> <br />请问,如何将JsonDateSerializer交给objectmapper使用?
问题补充:<div class="quote_title">xiaoZ5919 写道</div><div class="quote_div">从你提供的代码来看你只是new了一个JsonDateSerializer ,并没有交给objectmapper使用,他是不会起作用的。 <br />关于responsebody的json处理是用MappingJacksonHttpMessageConverter来处理,在这个类里面调用objectmapper</div> <br /> <br />谢谢,受你点播,我已经会在java代码中使用了,但是可不可以实用配置的方式来做呢? <br />2012年2月15日 23:01
相关推荐
在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...
在Spring MVC框架中,开发Web应用时经常需要将对象转换为JSON格式的数据并返回给客户端。然而,在处理敏感数据时,我们可能希望对这些数据进行脱敏,即隐藏或替换某些字段,以保护用户隐私或者确保数据安全性。本文...
2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml <bean class="org....
在Spring MVC中,为了将Java对象转换成JSON格式并返回给客户端,我们需要依赖于JSON库。在提供的信息中,提到了`jackson-all-1.9.x.jar`系列的包,这是Jackson库的一个早期版本。Jackson是一个非常流行的JSON处理库...
Spring MVC中的`@ResponseBody`注解可以将方法的返回值直接转换为JSON格式发送到客户端,而`@RequestBody`则可以将请求体中的JSON数据解析成Java对象。 **Jackson** Jackson是Java中广泛使用的JSON库,它可以高效地...
1. **406 Not Acceptable**:这个错误通常是因为客户端没有在请求头中指定能接受JSON格式。确保请求头中有`Accept: application/json`。 2. **JSON转换异常**:如果Java对象有自定义类型或者复杂结构,Jackson可能...
在Spring MVC框架中,数据转换和格式化是一个关键部分,它允许我们处理各种类型的输入和输出数据,确保数据能够在客户端和服务器之间正确地传递。HttpMessageConverter是Spring MVC中的核心组件,负责处理HTTP请求和...
总的来说,解决Spring MVC3返回JSON数据中文乱码的问题,关键在于正确设置字符编码。无论是使用Java的PrintWriter直接写入UTF-8编码的数据,还是先将数据编码为GBK后写入到ServletOutputStream中,又或者是在框架...
在这个过程中,我们将学习如何使用 Spring MVC 来创建一个返回 JSON 格式数据的服务器,以及如何在 Android 应用中消费这些数据。 ### 第一部分:环境准备 1. **Eclipse Neon**:这是一个集成开发环境,用于编写 ...
这通常与JSON序列化库(如Jackson或Gson)一起使用,将Java对象转换成JSON格式,然后发送回客户端。 ### 4. JSON 数据交换格式 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写...
Spring4 MVC作为Java领域最流行的MVC框架之一,提供了一流的支持来构建RESTful API,尤其适合输出JSON格式的数据结构。本文将深入探讨如何使用Spring4 MVC实现这一目标。 首先,理解REST(Representational State ...
在Spring MVC中,通过配置JSON视图解析器,我们可以将Java对象转换为JSON格式,以便通过HTTP响应返回给客户端,如AJAX请求。Spring MVC内置了Jackson和Gson等库,可以方便地实现JSON序列化和反序列化。 二、Spring ...
对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...
为了确保JSON序列化和反序列化时的性能和灵活性,我们还可以对Jackson库进行一些高级配置,例如忽略空值、自定义日期格式、添加自定义序列化和反序列化逻辑等。这可以通过创建一个`ObjectMapper`实例并在Spring配置...
// 转换为JSON格式 List, Object>> rows = new ArrayList(); for (User user : users) { Map, Object> row = new HashMap(); row.put("id", user.getId()); row.put("name", user.getName()); // 其他字段......
5. 测试:现在,当客户端向 `/person` URL发起GET请求时,Spring MVC会将`getPerson`方法返回的`Person`对象自动转换为JSON格式并返回给客户端。 在提供的`JavaJson`压缩包中,可能包含了实现上述步骤的源代码示例...
`@RequestBody`用于将HTTP请求体中的JSON数据映射到方法参数,而`@ResponseBody`则将方法返回的对象转换为JSON格式并返回给客户端。 例如,假设我们有一个`User`类,我们想要通过REST API创建一个新的用户: ```...
JSON是Web服务中常见的数据交换格式,Spring MVC通过HttpMessageConverter机制支持JSON数据的序列化和反序列化。通常会使用Jackson或Gson库来处理JSON转换,例如在Controller中,将Java对象转化为JSON响应给前端,...
8. **错误处理**:当JSON序列化或反序列化失败时,Spring MVC会自动抛出异常并返回一个错误响应。为了提供更友好的错误信息,可以配置异常处理器或者自定义错误视图。 总结起来,Spring MVC对JSON的支持主要依赖于...
Spring MVC会自动使用Jackson库将`User`对象转换为JSON格式。 2. **生成XML** 对于XML,Spring默认使用JAXB(Java Architecture for XML Binding)库。首先,确保项目包含JAXB库,如果使用的是Java 6或更高版本,...