`
TRAMP_ZZY
  • 浏览: 138863 次
社区版块
存档分类
最新评论

Spring MVC 4.X ResponseBody 日期类型Json 处理

阅读更多

方法一:全局处理

<mvc:annotation-driven>
	<!-- 处理responseBody 里面日期类型 -->
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="objectMapper">
					<bean class="com.fasterxml.jackson.databind.ObjectMapper">
						<property name="dateFormat">
							<bean class="java.text.SimpleDateFormat">
								<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
							</bean>
						</property>
					</bean>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>



方法二:局部注解处理

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);
	}

}


方法三:jackson 注解处理

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

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

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

@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 楼 xlaohe1 2015-07-24  
controller返回的是一个POJO对象,然后用@ResponseBody可以把里面的日期转换为yyyy-MM-dd HH:mm:ss的吗?
<property name="objectMapper"> 
                    <bean class="com.fasterxml.jackson.databind.ObjectMapper"> 
                        <property name="dateFormat"> 
                            <bean class="java.text.SimpleDateFormat"> 
                                <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> 
                            </bean> 
                        </property> 
                    </bean> 
                </property> 
下周去试试你的这种方式。
今天我也和这种差不多的方式,但是都失败了,日期格式都是变成了Long。
一是:<property name="dateFormat"><bean class="com.package.CustomDateFormat" /></...>
其中,CustomDateFormat是一个继承自SimpleDateFormat的类。但是失败了。
二是:<property name="objMapper"><bean class="com.package.CustomJsonObjectMapper" /></...>
和上一种差不多,里面的CustomJsonObjectMapper也是继承ObjectMapper的,里面setDateformat,但是也失败了。
2 楼 TRAMP_ZZY 2015-05-24  
能帮到你,我也很高兴。
1 楼 jobzjc 2015-04-05  
第一段有帮到我。如果是非对象,Object方式传递的时候,第一种方式可以正确格式化日期。

相关推荐

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

    本文将详细讨论如何在Spring MVC中针对`ResponseBody`返回的JSON数据进行脱敏处理。 首先,我们需要了解`ResponseBody`注解的作用。在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回...

    SpringMVC4.X:Spring MVC 4.X REST JSON示例

    综上所述,Spring MVC 4.X REST JSON示例旨在展示如何利用Spring MVC框架创建高效、灵活且易于维护的RESTful服务,处理JSON数据交换。通过理解以上知识点,开发者可以有效地构建自己的REST API,满足现代Web应用的...

    最新版本 jackson 2.8.2 jar与spring 4.x @ResponseBody配合使用

    标题提到的"最新版本 Jackson 2.8.2 jar与Spring 4.x @ResponseBody配合使用"涉及到的关键知识点包括Jackson的三个核心模块,以及如何在Spring MVC中利用这些模块实现RESTful API的数据响应。 1. **Jackson核心模块...

    spring3.x前后端使用json传输数据

    var jsonStr = JSON.stringify(user); alert("jsonStr == " + jsonStr); $.ajax({ type: "post", contentType: "application/json;charset=UTF-8", url: '&lt;c:url value="/book/testJsonUser.do" /&gt;', ...

    spring mvc(整合了json)

    4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解来接收和返回 JSON 数据。例如: ```java @RequestMapping(value = "/...

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

    4. **JSON与Ajax**:Spring MVC 3与jQuery或其他JavaScript库配合,可以方便地实现Ajax请求和响应,以JSON形式进行数据交换。 **二、常见错误解决** 1. **406 Not Acceptable**:这个错误通常是因为客户端没有在...

    springmvc01.zip_DEMO_JSON校验_spring mvc

    Spring MVC通过`@ResponseBody`注解和`MessageConverter`机制可以方便地将Java对象转换为JSON格式并返回给客户端。你可以使用Jackson或Gson库作为默认的JSON转换器。在控制器方法中,将要返回的对象标记为`@...

    spring Mvc配置xml使ResponseBody返回Json的方法示例

    在Spring MVC框架中,使用`@ResponseBody`注解可以方便地将控制器方法的返回值转换为JSON格式,然后发送到客户端。本篇文章将详细介绍如何在Spring MVC的XML配置中设置,以便让`@ResponseBody`自动将Java对象转换为...

    spring mvc json&&jackson jquery js

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

    精通Spring 4.x企业应用开发实战_源码

    9. **RESTful服务**:Spring 4.x改进了对RESTful API的支持,通过@RequestBody、@ResponseBody等注解,简化了JSON数据的交换。 10. **测试支持**:Spring提供了全面的测试工具和库,包括单元测试、集成测试和端到端...

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...

    Spring mvc Json处理实现流程代码实例

    总结,Spring MVC处理JSON数据的关键在于`@RequestBody`和`@ResponseBody`注解以及HttpMessageConverter。`@RequestBody`用于将JSON请求体映射到方法参数,`@ResponseBody`用于将方法返回值转换为JSON响应。通过集成...

    spring-mvc-jquery.zip_jquery_mvc jquery_spring jquery_spring mvc

    4. **Ajax分页**:结合Spring MVC的ModelAndView或ResponseBody,实现无刷新的分页功能。 5. **错误处理**:Spring MVC可以返回错误码或自定义消息,jQuery接收到这些信息后可以显示相应的错误提示。 文件“spring...

    Spring.MVC学习指南.pdf

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这份“Spring.MVC学习指南.pdf”很可能是为了帮助开发者深入理解和掌握Spring MVC的核心概念...

    springmvc+json

    此外,还可以使用`@JsonFormat`控制日期格式,或者创建自定义的`JsonSerializer`和`JsonDeserializer`来处理特定类型的序列化和反序列化。 在`index.jsp`中,你可以使用JavaScript(如jQuery)来发送异步请求获取...

    spring3-miniweb.rar_spring json_spring3_spring3 mvc

    2. **@RequestBody 和 @ResponseBody**:这两个Spring MVC注解是处理JSON的核心。`@RequestBody`用于将HTTP请求体中的JSON数据映射到Java对象,而`@ResponseBody`则将控制器方法返回的对象转换为JSON响应。 3. **...

    spring mvc + spring + mybatis+json整合

    - 创建Controller,使用@RequestMapping注解映射URL,@RequestBody和@ResponseBody注解处理请求和响应的JSON数据。 - 编写MyBatis的Mapper XML文件和对应的Mapper接口,定义SQL语句和结果映射。 6. **源码和工具*...

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

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

    Spring3 MVC Ajax with JSON

    这个项目提供的示例工程应该包含了一个工作流程的完整实例,从Ajax请求到Spring MVC的处理,再到JSON响应的返回,帮助开发者理解并掌握这一技术栈的使用。通过深入研究和实践,你将能够熟练地在自己的项目中应用这些...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    在开发Web应用时,我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,...

Global site tag (gtag.js) - Google Analytics