0 0

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

3个答案 按时间排序 按投票排序

0 0

采纳的答案

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

2012年2月16日 10:46
0 0

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

2012年7月06日 10:58
0 0

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

2012年2月16日 15:02

相关推荐

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

    在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...

    spring MVC 对 ResponseBody返回json数据进行脱敏处理

    在Spring MVC框架中,开发Web应用时经常需要将对象转换为JSON格式的数据并返回给客户端。然而,在处理敏感数据时,我们可能希望对这些数据进行脱敏,即隐藏或替换某些字段,以保护用户隐私或者确保数据安全性。本文...

    spring mvc(整合了json)

    2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml &lt;bean class="org....

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

    在Spring MVC中,为了将Java对象转换成JSON格式并返回给客户端,我们需要依赖于JSON库。在提供的信息中,提到了`jackson-all-1.9.x.jar`系列的包,这是Jackson库的一个早期版本。Jackson是一个非常流行的JSON处理库...

    spring mvc json&&jackson jquery js

    Spring MVC中的`@ResponseBody`注解可以将方法的返回值直接转换为JSON格式发送到客户端,而`@RequestBody`则可以将请求体中的JSON数据解析成Java对象。 **Jackson** Jackson是Java中广泛使用的JSON库,它可以高效地...

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

    1. **406 Not Acceptable**:这个错误通常是因为客户端没有在请求头中指定能接受JSON格式。确保请求头中有`Accept: application/json`。 2. **JSON转换异常**:如果Java对象有自定义类型或者复杂结构,Jackson可能...

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

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

    详解Spring MVC3返回JSON数据中文乱码问题解决

    总的来说,解决Spring MVC3返回JSON数据中文乱码的问题,关键在于正确设置字符编码。无论是使用Java的PrintWriter直接写入UTF-8编码的数据,还是先将数据编码为GBK后写入到ServletOutputStream中,又或者是在框架...

    用Spring MVC 搭建JSON 数据服务器

    在这个过程中,我们将学习如何使用 Spring MVC 来创建一个返回 JSON 格式数据的服务器,以及如何在 Android 应用中消费这些数据。 ### 第一部分:环境准备 1. **Eclipse Neon**:这是一个集成开发环境,用于编写 ...

    Spring3 MVC Ajax with JSON

    这通常与JSON序列化库(如Jackson或Gson)一起使用,将Java对象转换成JSON格式,然后发送回客户端。 ### 4. JSON 数据交换格式 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写...

    使用Spring4 MVC 构建RESTful服务器,输出JSON格式的数据结构

    Spring4 MVC作为Java领域最流行的MVC框架之一,提供了一流的支持来构建RESTful API,尤其适合输出JSON格式的数据结构。本文将深入探讨如何使用Spring4 MVC实现这一目标。 首先,理解REST(Representational State ...

    spring-mvc-jsonview源代码

    在Spring MVC中,通过配置JSON视图解析器,我们可以将Java对象转换为JSON格式,以便通过HTTP响应返回给客户端,如AJAX请求。Spring MVC内置了Jackson和Gson等库,可以方便地实现JSON序列化和反序列化。 二、Spring ...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    springmvc操作json数据所需的jar包

    为了确保JSON序列化和反序列化时的性能和灵活性,我们还可以对Jackson库进行一些高级配置,例如忽略空值、自定义日期格式、添加自定义序列化和反序列化逻辑等。这可以通过创建一个`ObjectMapper`实例并在Spring配置...

    SpringMVC返回JSON数据相关Jar包

    // 转换为JSON格式 List, Object&gt;&gt; rows = new ArrayList(); for (User user : users) { Map, Object&gt; row = new HashMap(); row.put("id", user.getId()); row.put("name", user.getName()); // 其他字段......

    spring—mvc -json

    5. 测试:现在,当客户端向 `/person` URL发起GET请求时,Spring MVC会将`getPerson`方法返回的`Person`对象自动转换为JSON格式并返回给客户端。 在提供的`JavaJson`压缩包中,可能包含了实现上述步骤的源代码示例...

    spring mvc json学习

    `@RequestBody`用于将HTTP请求体中的JSON数据映射到方法参数,而`@ResponseBody`则将方法返回的对象转换为JSON格式并返回给客户端。 例如,假设我们有一个`User`类,我们想要通过REST API创建一个新的用户: ```...

    spring mvc + spring + mybatis+json整合

    JSON是Web服务中常见的数据交换格式,Spring MVC通过HttpMessageConverter机制支持JSON数据的序列化和反序列化。通常会使用Jackson或Gson库来处理JSON转换,例如在Controller中,将Java对象转化为JSON响应给前端,...

    springmvc对json支持

    8. **错误处理**:当JSON序列化或反序列化失败时,Spring MVC会自动抛出异常并返回一个错误响应。为了提供更友好的错误信息,可以配置异常处理器或者自定义错误视图。 总结起来,Spring MVC对JSON的支持主要依赖于...

    spring mvc生成xml或json

    Spring MVC会自动使用Jackson库将`User`对象转换为JSON格式。 2. **生成XML** 对于XML,Spring默认使用JAXB(Java Architecture for XML Binding)库。首先,确保项目包含JAXB库,如果使用的是Java 6或更高版本,...

Global site tag (gtag.js) - Google Analytics